2011-03-23 53 views
0
Table_A 

TxID RelatedTxID 
------------------- 
1  NULL 
2  NULL 
3  1 

Table_B 

OrderID TxID OrderDescription 
----------------------------------- 
1   1  Description_1 
2   2  Description_2 

我想得到一個輸出,它會給我交易的訂單描述。但是,如果交易沒有一個爲了說明我想要顯示它的相關事務的順序描述(關聯交易總會有一個順序的描述)t-sql加入幫助

Output 

TxID RelatedTxID OrderDescription 
------------------------------------ 
1  NULL  Description_1 
2  NULL  Description_2 
3  1   Description_1 

我喜歡下面想的東西,但停留在又該派上ISNULL表達式。

select 
a.TxID, 
a.RelatedTxID, 
ISNULL(b.OrderDescription, <<get its related transaction's order description>>) 
from Table_A a 
left outer join Table_B b 
on a.TxID = b.TxID 

感謝

回答

3
select 
    a.TxID, 
    a.RelatedTxID, 
    ISNULL(b1.OrderDescription, b2.OrderDescription) 
from Table_A a 
left outer join Table_B b1 on a.TxID = b1.TxID 
left outer join Table_B b2 on a.RelatedTxID = b2.TxID