Попытка обновить регистр, когда затем, на основе совпадения идентификаторов в двух таблицах - PullRequest
1 голос
/ 11 декабря 2019

Я пытаюсь обновить идентификаторы в таблице с именем 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

Вот снимок экрана двух схем. Итак, теперь значения в желтых ячейках отсутствуют идентификаторы, но я пытаюсь заполнить их значениями, которые я показываю здесь.

enter image description here

Странно то, что большинство идентификаторов в таблице цен корректно обновляются на основе тех же идентификаторов в таблице 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...