У меня есть таблица базы данных, в которой ежегодно хранятся обновления членства. При вставке записи о продлении в столбец «expiryDate» записывается дата (31/8/[следующий год]).
Итак, в качестве примера, скажем, член с memberID = 99 продлевает подписку в 2007, 2008 и 2009 годах, у него будет 3 записи (по одной на каждый год), в каждой из которых записано «expiryDate». Если я сделаю
SELECT MAX(YEAR(expiryDate)) as maxExpiry
FROM renewals
WHERE memberID = 99
...Я верну 2010 год.
Что я хотел бы сделать, так это вернуть ВСЕ записи, где MAX(YEAR(expiryDate))
- данный год.. например,
SELECT *
FROM renewals
WHERE MAX(YEAR(expiryDate)) = '2010';
Этот запрос не будет работать, поскольку агрегацию нельзя использовать в предложении where вне подзапроса, но я не могу понять, как структурировать подзапрос... или даже если это можно сделать лучше, чем с помощью подзапрос.