Я пытаюсь обновить идентификаторы в таблице с именем Price на основе совпадений идентификаторов в таблице с именем CW. Вот SQL, который я тестирую.
UPDATE Price
SET ISN = (case when CW.id_cd = 'ISN' THEN CW.id_number else ISN end),
SED = (case when CW.id_cd = 'SED' THEN CW.id_number else SED end),
CSP = (case when CW.id_cd = 'CSP' THEN CW.id_number else CSP end)
FROM CW
WHERE Price.ID_GLOBAL = CW.asset_id
Вот снимок экрана двух схем. Итак, теперь значения в желтых ячейках отсутствуют идентификаторы, но я пытаюсь заполнить их значениями, которые я показываю здесь.
Странно то, что большинство идентификаторов в таблице цен корректно обновляются на основе тех же идентификаторов в таблице CW, но обновляются не все идентификаторы. После выполнения вышеприведенного обновления, когда я запускаю приведенный ниже SQL, я получаю кучу записей, но не ожидаю никаких записей вообще, потому что все CSP (ID) должны были быть обновлены в таблице Price.
Select *
From Price
INNER JOIN CW
ON Price.id_global = CW.asset_id
Where Price.CSP IS NUll
AND CW.id_cd = 'CSP'