2011-03-23 72 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