2016-11-29 1 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

Два левых соединения.

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 

 Смежные вопросы

  • Нет связанных вопросов^_^