поиск по множеству идентификаторов (.. where ID in (select xx..) )
От: aceace  
Дата: 11.09.16 23:20
Оценка:
допустим есть простая таблица 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)...
как это сделать изящнее или проще? (одним запросом?)
а то всякие курсоры и временные таблицы пока приходят в голову..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.