допустим есть простая таблица T1: ID|amount|date, ID не уникально, т.е. может быть несколько записей с разными датами.
чтобы выбрать все записи по ID я пишу: select * from T1 where ID = 'zzz' ,
но мне нужны только записи с самой поздей датой, т.е.: select * from T1 where ID = 'zzz' and date = (select MAX(date) from T1 where where ID = 'zzz')
пока всё просто, но мне нужен результат по группе из нескольких ID, т.е. есть таблица Т2, в которой ID сгруппированы по категориям.
я пишу: select * from T1 where ID in (select ID from T2 where GID = 'xxxxx').
но тут начинается самое интересное — мне по прежнему нужны только записи с самой поздней датой для каждого ID из списка (таблица Т1)...
как это сделать изящнее или проще? (одним запросом?)
а то всякие курсоры и временные таблицы пока приходят в голову..