在 sql 中给定一个关系表并使用预先存在的数据插入新的数据行

问题描述 投票:0回答:0

我正在使用 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 个中转港口。

一个集装箱被分配给一艘被分配到一条航线的船只。

船舶可以在航线上的任意港口取卸集装箱。

我还探索了一些解决总线路由的解决方案,但它并不相同。

我想避免创建一个巨大的距离矩阵,以便在应用程序等缩放时,这是小菜一碟。

本质上,我需要一个静态表,它可以在每次缺少条目时自行更新。

sql oracle rdbms
© www.soinside.com 2019 - 2024. All rights reserved.