我正在使用 Oracle 并且我有一张表 段(Segmentid,Segmentstart,Segmentend,距离)
如果我的表有值(1,2,3,56) (2,3,4,78) 如何插入新行,sql可以直接查询 2-3+3-4=78+56 并将其作为 (3,2,4,134)
插入到现有表中类似地,如果有另一行说 (4,4,6,89),我想查询从 2 到 6 的距离。因为现在我的表有一个从 2-4 的条目….2-6 应该计算为 2 -4+4-6
我正在尝试解决船舶航线问题。而且我想避免保持端口到端口的距离矩阵。
任何帮助将不胜感激。
谢谢, 问候 沙赫斯塔·艾哈迈德
我尝试创建段表将其与自身交叉连接,然后将其查询为
Select * from segment cross join segment where startid= 2 and endid=4.
但是,如果它们之间有多个端口,比如 2-3、3-5、5-6、6-4……我的查询不正确。
我也在网上找到了一些尝试使用 nocycle 解决它的解决方案,但到目前为止它不符合我的要求。
我的逻辑可以分解为 一条路线有多个港口最多 3 个中转港口。
一个集装箱被分配给一艘被分配到一条航线的船只。
船舶可以在航线上的任意港口取卸集装箱。
我还探索了一些解决总线路由的解决方案,但它并不相同。
我想避免创建一个巨大的距离矩阵,以便在应用程序等缩放时,这是小菜一碟。
本质上,我需要一个静态表,它可以在每次缺少条目时自行更新。