我正在尝试验证与某些车辆的行程有关的一些数据。
行程数据的格式为
Vehicle Trip Place_Name
1 1 ATown
1 2 BTown
1 3 ATown
2 1 ATown
2 2 CTown
此表链接到有关每个地点的信息。不幸的是,一些指定的地方并不是唯一的,即可能有不止一个地方名为ATown。
所以地点数据的形式是
Place_ID Place_Name Co-ordinates
1 ATown Lat1,Lng1
2 ATown Lat2,Lng2
3 ATown Lat3,Lng3
4 BTown Lat4,Lng4
5 BTown Lat5,Lng5
6 CTown Lat6,Lng6
所以有三个地方叫Atown,两个地方叫BTown,只有一个地方叫CTown。
如果我加入这两个表
select T.Vehicle , T.Trip , P.Place_ID , P.Place_Name
from Trips as T
left join
Places as P
on T.Place_Name = T.Place_Name
我明白了
T.Vehicle T.Trip P.Place_ID P.Place_Name
1 1 1 ATown
1 1 2 ATown
1 1 3 ATown
1 2 4 BTown
1 2 5 BTown
1 3 1 ATown
1 3 2 ATown
1 3 3 ATown
2 1 1 ATown
2 1 2 ATown
2 1 3 ATown
2 2 6 CTown
我想要得到的是每辆车的一组独特的位置组合
Vehicle Possibility Trip Place_Name Place_ID
1 1 1 ATown 1
1 1 2 BTown 4
1 1 3 ATown 1
1 2 1 ATown 2
1 2 2 BTown 4
1 2 1 ATown 1
1 3 1 ATown 3
1 3 2 BTown 4
1 3 3 ATown 1
1 4 1 ATown 1
1 4 2 BTown 5
1 4 3 ATown 1
1 5 1 ATown 2
1 5 2 BTown 5
1 5 3 ATown 1
1 6 1 ATown 3
1 6 2 BTown 5
1 6 3 ATown 1
1 7 1 ATown 1
1 7 2 BTown 4
1 7 3 ATown 3
1 8 1 ATown 2
1 8 2 BTown 4
1 8 3 ATown 3
1 9 1 ATown 3
1 9 2 BTown 4
1 9 3 ATown 3
车辆 1 应该有 18 条可能的路线,车辆 2 应该有 3 条路线。每辆车的行程次数与同名城镇的数量不同。
一旦我有了地点组合,我就可以使用坐标来绘制每辆车的路线并计算出起点到终点的距离。然后我将使用它来验证其他距离信息。
我正在努力找出从哪里开始构建一个可以产生我需要的结果的 SQL 查询。
任何指针将不胜感激。