SELECT * FROM
( SELECT
e.*,
ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC) r
FROM
EMPLOYEE e)
WHERE r = 1;
Hierboven krijgt u een record met maximale effectieve__Datum voor elke afzonderlijke emp_id.
Uw tweede vereiste om het record voor een bepaalde datum te retourneren, moet worden vervuld door deze vraag:
("status ASC" - zorgt voor het verkrijgen van de status "Joiner" als er ook "Leaver" is voor dezelfde datum.)
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;