2016-11-29 14 views
1

をテーブルに参加を決め、ここに私のSQLクエリが動的に私は動的に内部テーブルを結合したい列の値に基づいて

Update temp 
Set temp.Order_Id = parent.ID 

from #TempTransactions AS temp 

Inner Join (case when temp.OrderType = 1 then preorders else orders end) AS parent 

ON parent.Cloud_Id = temp.Order_Id 

が、それは私が上記の方法または任意の他の代替に決めることができる可能性はありますか?

はいの場合はどうですか?

答えて

2

2つの左結合があります。

Update temp Set temp.Order_Id = COALESCE(p.ID, o.ID) 

from #TempTransactions AS temp 

LEFT Join preorders p ON p.Cloud_Id = temp.Order_Id AND temp.OrderType=1 
LEFT JOIN orders o ON o.Cloud_Id = temp.Order_Id AND (temp.OrderType <> 1 OR temp.OrderType IS NULL) 
WHERE COALESCE(p.ID, o.ID) IS NOT NULL 
関連する問題