У меня есть комплекс (*) SQL SELECT
заявления, которое возвращает строки, которые мне нужно, чтобы обновитьОбновление строк, возвращаемый ЗЕЬЕСТ
Как обновить строки, возвращенные только моего SELECT
заявления?
Все сообщения я вижу об обновлении строк с помощью оператора SELECT говорить о INNER JOIN против другой таблицы с помощью полей, чтобы соответствовать (How do I UPDATE from a SELECT in SQL Server?)
Мое утверждение
SELECT * FROM table1 I
INNER JOIN
(SELECT *
FROM (
SELECT INTNO,EFFDTE,
ROW_NUMBER() OVER(PARTITION BY INTNO,EFFDTE ORDER BY EFFDTE DESC) rn
FROM table2 WHERE REFID = 8888 AND EFFDTE IS NOT NULL AND INTNO <> 1234567
) a
WHERE rn = 1) X
ON X.INTNO = I.MEMBNO AND I.ENDDTE = DATEADD(DD,-1,X.EFFDTE)
WHERE I.ENDRSN = 'abc'
Благодарю. Что произойдет, если у меня нет общего столбца? т.е.: значение, которое появляется только в моих возвращенных строках из моей инструкции SELECT? Оператор SELECT может возвращать 3 из 10 строк с INTNO 111222, но я хочу только обновить их 3, не все 10 – Mike
@Mike, то как определить, какая строка будет обновляться –
Спасибо @NoDisplayName - я понял, что моя инструкция SELECT Это был ответ. Я пытался подключиться ко всему моему запросу select к обновлению, тогда как мне нужно было немного отступить и использовать обновление против него. (Я добавил ответ) – Mike