Как правильно присоединять таблицы на основе их сгруппированных данных?
Есть таблица с Физ.Лицами.
Есть таблица с образованиями и FK на физ. лицо.
В таблице с образованиями на одно физ. лицо может быть заведено несколько записей. Мне необходимо отобрать только 1 запись по максимальному типу образования, дате получения образования (диплома) и id. все эти поля в одной таблице.
Как сделать выборку не по колхозному? (мне пришлось несколько раз группировать массивную таблицу по каждому из этих полей для получения max(id), а также, после этого ещё раз связать её с основным запросом.
Уверен, что должно быть три таблицы- 1. Физ.лицо, 2.образование, 3. Соединение 1-ой ко 2-ой,
Максимальность по образованию должно хранится во 2-ой таблице, дата получения образования в 3-ей.
При выводе ко всему, что тебя интересует добавляешь сортировку для долнейшего ограничения по ней где-то так
SELECT * FROM (
SELECT
X,....
ROW_NUMBER() OVER(PARTITION BY
T1.PID (перзон-ид) ORDER BY max( T2.OPRIO /по образованию) , T3.ODAT /дата получения AS SRC_NR
FROM
T1,T2,T3
WHERE T1.PID =T2.PID AND T2.OID = T3.OID
) SRC