В моей таблице SQL Server есть рабочие идентификаторы и различные даты для каждого рабочего.Я могу найти самую раннюю дату для каждого работника, просто отлично в моем утверждении выбора.
Но мне нужно обновить таблицу, чтобы пометить столбец только для самой ранней даты каждого работника.
Я попытался обновить таблицу, которая использует условие Exists в подзапросе, но он не позволяет мне иметь оба столбца в подзапросе.
Я получаю следующую ошибку - «Только одно выражение можетбыть указанным в списке выбора, когда подзапрос не введен с EXISTS. "
Эта версия выдает мне сообщение об ошибке, в котором отсутствует" существует. "
UPDATE workers
SET MinDate = 'x'
where eventdate =
(SELECT workerID, MIN(eventdate)
FROM workers
group by workerID)
И эта версия также дает сбойпотому что он обновляет все строки, игнорируя существующий подзапрос.
UPDATE workers
SET MinDate = 'x'
WHERE EXISTS
(
SELECT workerID, min(eventdate), MinDate
FROM workers
GROUP BY workerID, MinDate
)
Я хочу, чтобы конечный результат выглядел следующим образом.Для каждого работника запрос на обновление должен отмечать только самую раннюю дату события в столбце MinDate.Прямо сейчас столбец MinDate равен нулю:
workerID eventdate MinDate
1 2016-03-16 x
2 2013-05-31 x
2 2014-02-11 NULL
2 2014-09-09 NULL
3 2013-06-14 x
Спасибо за помощь!