Мне нужно обновить записи участников, которые не посещали за последние 14 дней. Есть две таблицы: Members и Attendance. Мне нужно обновить запись участника самой последней «Last_Attend_Date», если Attend_Freq меньше 5 за последние 14 дней.
Members table:
ID Attend_Freq Last_Attend_Date
123 4 2012-7-5 -- This is the result of the query, the most
recent date in the table instead of the
most recent for the member
Attendance
ID Member_ID Last_Attend_Date
987 123 2012-6-5
888 123 2012-6-4
567 123 2012-6-3
456 234 2012-6-30
1909 292 2012-7-5
Это запрос, но он дает мне самую последнюю Last_Attend_Date в таблице посещаемости вместо самой последней от участника, которого мне нужно обновить.
UPDATE M
SET Last_Attend_Date =
(SELECT Max(Last_Attend_Date) FROM Attendance A
JOIN Members M ON A.Member_ID = M.ID
WHERE A.Member_ID =M.id )
FROM Members M
JOIN Attendance A on A.Member_ID = M.id
WHERE Attend_Freq <'5' and Last_Attend_Date <getdate()-14 and A.Member_ID = M.ID