Я пытаюсь обновить таблицу 1 некоторым значением поля из таблицы 2 на основе условия. Но я не могу получить правильный запрос. Вот условие:Обновление таблицы с записями из другой таблицы
У меня есть таблица 1 с полем даты, которое должно обновляться из поля даты таблицы 2. Условие состоит в том, что идентификатор таблицы 1 должен быть равен идентификатору таблицы 2 (таблица 2 имеет идентификатор таблицы 1 как FK). Еще одним условием должно быть поле varchar в таблице 2, которое должно иметь определенное значение, например «Test». Везде, где значение поля в таблице 2 является «Тест», я хочу обновить дату этой записи в поле даты таблицы 1. Но есть еще один улов. Вполне возможно, что более 1 записи для того же идентификатора в таблице 2 могут иметь значение как «Test»
Я пытался запрос как:
UPDATE A
SET A.Date = Max(B.[Date])
FROM Table1 A
INNER JOIN Table2 B ON A.ID = B.FK_ID
WHERE (B.Changed LIKE 'Test')
AND A.Date IS NULL
Но это не работаете, как SQL не позволяет Max
в обновлении, когда нет группы. Пожалуйста помоги. Немного срочно.
выглядит правильно, но зачем использовать LIKE вместо равных? –
мой первый импульс состоял в том, чтобы отредактировать его на равных, но тогда я понял, что «Тест» был таким явно выраженным значением примера, поэтому я предполагаю, что можно считать прочитанным, что что-то еще на самом деле пойдет туда в реальной реализации этого , и оттуда я только предположил, что Тед знал о различиях между 'LIKE' и' = 'и решил не выбирать, так как это было довольно опасно для вопроса =) –
Прохладные бананы, хотели убедиться, что я был 't пропустили случайное изменение синтаксиса –