我需要将两个表加入一个视图。我的第一个表叫做ttddocseg,它是一次航班行程所有分段的历史记录。该表中将包含出发城市代码和到达城市代码,以及其他无关信息。我的第二个表是一个城市表,该表与城市代码键上的段表有连接。我想要做的是,当两次使用“键”(城市代码):到达和离开的城市时,将来自城市表的额外城市信息放入带有细分交易数据的单个视图中。 >
示例:
SELECT arvlctycode, dpartctycode FROM ttddocseg
收益:
DFW ,DEN
DEN ,ORD
LAX ,DEN
ORD ,LAX
DEN ,DCA
...
和
SELECT ctycode, ctyname FROM trfcty
收益:
DFW ,Dallas/Fortworth
DEN ,Denver
LAX ,Los Angeles
...
因此,当我加入细分和城市表时,我期望的输出是:
DFW, Dallas/Fortworth, DEN, Denver
DEN, Denver, ORD, Chicago/OHARE
...
因此,从理论上讲,我将联接两个子查询,每个子查询都将表联接在一起,一个子目录连接到到达城市代码,另一个子目录连接到目标城市代码,然后将这些列集彼此相邻,并按我的表键排序以确保到达/目的地配对正确。我尝试过的一切都还没有成功。迄今为止我最大的努力:
select
(
select a.ctycode, b.arvlctycode, b.arvldate, b.actualmile, b.aircrrcode, b.tdtrxnum, b.tddocnum, b.segnum
from trfcty a inner join ttddocseg b on a.client = b.client and a.ctycode = b.arvlctycode
where a.client = 'TT' and ctytype = 'A'
--order by b.tdtrxnum, b.tddocnum, b.segnum
) AS Arrival,
(
select a.ctycode, b.dpartctycode , b.dpartdate, b.actualmile, b.aircrrcode, b.tdtrxnum, b.tddocnum, b.segnum
from trfcty a inner join ttddocseg b on a.client = b.client and a.ctycode = b.dpartctycode
where a.client = 'TT' and ctytype = 'A'
--order by b.tdtrxnum, b.tddocnum, b.segnum
) AS Departure
注释掉的“排序依据”部分是我尝试做的,以确保到达/离开城市的配对保持对齐,因为这些是细分表的主键。
我这样做当然会出错,但是我认为背后的想法很明显。我只是不知道如何正确地做。
答案 0 :(得分:0)
这是您要寻找的吗?
SELECT s.arvlctycode, s.dpartctycode, ca.cityname, cs.cityname
FROM ttddocseg s JOIN
trfcty ca
ON s.arvlctycode = ca.ctycode JOIN
trfcty cd
ON s.dpartctycode = cs.ctycode;
这将返回与每个代码关联的城市。