2016-03-15 4 views
0

enter image description hereЗаполните колонки путем присоединения T1 и T2

мне нужно, чтобы заполнить столбец ISkeyProduct путем присоединения таблицы Т1 и Т2 над Country и Itemcode (см крепление для таблиц). Конечные значения в столбце iskeyproduct должны быть True или False, но не NULL.

Мой код:

Update T1 
Set IsKeyProduct = Case 
         When t2.ItemCode is not Null Then 1 Else 0 
        End 
From T1 
Left join T2 on t1.ShopCountry = t2.Country 
      and t1.ItemCode = case when t2.ItemCode 
Where 
    (t1.ItemCode is not Null and t2.ItemCode is not null) 
+0

но с этим кодом я получаю серию «1» и NULL. – Ramaq

+0

Какой из них T1, а какой T2 в вашем образце? \t Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/), чтобы узнать, как улучшить качество вопроса и получить лучшие ответы. –

+0

Так в чем проблема? У вас есть ошибка? и неожиданный результат? –

ответ

0

Вы должны избавиться от второго предиката и зафиксировать JOIN ON условие:

UPDATE T1 
SET IsKeyProduct = CASE WHEN t2.ItemCode IS NOT NULL THEN 1 ELSE 0 END 
FROM T1 
LEFT JOIN T2 
    ON t1.ShopCountry = t2.Country AND t1.ItemCode = t2.ItemCode 
WHERE t1.ItemCode IS NOT NULL 

Этот предикат:

t2.ItemCode is not null 

отфильтровывает те записи, для которых IsKeyProduct должно быть установлено на 0.

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