我正在构建数据协调系统的匹配规则,并且需要您为调整我的sql提供建议,因为它目前还没有返回我需要的内容。
有2个源表:
Table X Table Y
--------------------- ----------------------
Exec_ID From To Exec_ID From To
1 A B 1 B C
2 A B 2 B C
3 A B 3 B C
4 A B
5 B C
匹配条件是:
X.To = Y.From
X.Exec_ID = Y.Exec_ID
如果有A - >; B然后B - > C,它应该返回A - > C到底。
如果只有A - > B并且没有进一步的B - > C,它应该返回A - >乙
所以输出应该如下。
From To
---------
A C
A C
A C
A B
使用的SQL是:
select X.From, Y.To
from x
left outer join y on
x.To = Y.From
and x.Exec_ID = y.Exec_ID
返回
之类的值A C
A C
A C
A Null
所以最后一条记录不正确,因为它应该是A B.请帮助调整。
答案 0 :(得分:2)
检查是否为空?
select X.From, [To] = COALESCE(Y.To, X.To)
from x
left outer join y on
x.To = Y.From
and x.Exec_ID = y.Exec_ID