У меня есть сложное обновление. Любая помощь высоко ценится. Заранее спасибо за вашу помощь.Tricky SQL update
Вот сценарий, как показано на прилагаемом изображении. Я должен обновить P_main.ver_key
от Versions.verkey
, где P_main.ver_key
- null. Логика состоит в том, чтобы получить ver_key
за это pid
, где Versions.pcmm <= max(P_main.vdmm)
. Значения, которые должны быть заполнены в нулевых точках, отображаются в столбце «после обновления» на изображении.
Пример:
P_main
стол:
pid = 50000178
vcmm = 2014027001
Versions
стол:
pid = 50000178
max pdmm <=2014027001 is 2014032000
поэтому
update ver_key = 154
Это обновит КТР, который я думаю, как временная таблица. Мне придется обновить физическую таблицу с помощью CTE. Это правильно? Где добавить ограничение для обновления только там, где ver_key равно null? – user1689992
Нет, это обновит 'P_Main'. Для вашего условия я обновил свой ответ – Lamak
Можете ли вы, пожалуйста, пометить запрос псевдонимами таблицы для внутреннего запроса, чтобы я понял его более четко. Мне нужен P_Main.vcmm <= max (Версии pdmm). – user1689992