SELECT * FROM
( SELECT
e.*,
ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC) r
FROM
EMPLOYEE e)
WHERE r = 1;
Powyżej otrzymasz rekord z maksymalną datą efektywną__ dla każdego odrębnego emp_id.
Drugie wymaganie zwrotu rekordu dla podanej daty powinno być spełnione przez to zapytanie:
("status ASC" - zajmie się przyjęciem statusu "Dołączający", jeśli istnieje również "Opuszczony" dla tej samej daty.)
SELECT * FROM
( SELECT
e.*,
ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC, status ASC) r
FROM
EMPLOYEE e
WHERE effective_date <= '<your desired date>')
WHERE r=1;