2015-07-02 121 views
1

我正在構建數據對帳系統的匹配規則,並且需要您的建議來調整我的sql,因爲它目前不會返回我所需的內容。
有2個源表:SQL - 如果列爲空,則從另一個表中獲取值

 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,然後乙 - 到底>Ç - > C,則它應該返回甲。
如果只有A - > B和沒有進一步的乙 - > C,則它應該返回A - > B.

因此,輸出應爲如下。

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 

所以最後一個記錄是不正確的,它應該是一個B.請幫忙調整值。

回答

2

檢查null?

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 
+0

_from_也是一個需要在括號內的關鍵字。 – jpw

相關問題