Обновление значения столбца из другого столбца в одной и той же таблицы на основе другой строки
База данных: Oracle
Я хотел бы обновить значение столбца ClientCode «30» до «40» на основе следующего условия :
Если a.Newcode (12.1.1) = b.Old_code (12.1.1) и b.new_code является нулевым
Я попытался следующий запрос, но не успех до сих пор;
UPDATE CLIENTACTIVITYCODEMAPPING a
SET a.CLIENTCODE = (SELECT B.CLIENTCODE FROM CLIENTACTIVITYCODEMAPPING b
WHERE b.NEW_CODE IS NULL
AND b.PROJECTCODE = A.PROJECTCODE
AND b.OLD_CODE = a.NEW_CODE)
WHERE a.PROJECTCODE = 2242
AND a.NEW_CODE IS NOT NULL
AND A.NEW_CODE IN (SELECT c.OLD_CODE FROM CLIENTACTIVITYCODEMAPPING c where c.new_code is null and c.old_code = a.new_code)
Любая ошибка? Что не работает? – Marc
Проверьте ошибку Constraint на столбце ClientCode. ClientCode не может быть NULL. Я думаю, что мой внутренний запрос не возвращает строку. – user1263981
Я не понимаю утверждение if. это не b.new_code код вместо null? – Marc