SELECT * FROM
( SELECT
e.*,
ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC) r
FROM
EMPLOYEE e)
WHERE r = 1;
Di atas akan memberi Anda catatan dengan Effective__Date maksimal untuk setiap emp_id yang berbeda.
Persyaratan kedua Anda untuk mengembalikan catatan untuk tanggal tertentu harus dipenuhi oleh kueri ini:
("status ASC" - akan mengambil status "Joiner" jika ada juga "Leaver" untuk tanggal yang sama.)
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;