SELECT * FROM
( SELECT
e.*,
ROW_NUMBER() OVER (partition by emp_id order by effective_date DESC) r
FROM
EMPLOYEE e)
WHERE r = 1;
Ở trên sẽ giúp bạn có một bản ghi với hiệu quả tối đa__ Ngày cho mọi emp_id riêng biệt.
Yêu cầu thứ hai của bạn về việc trả lại hồ sơ cho ngày nhất định phải được điền đầy đủ bởi truy vấn này:
("trạng thái ASC" - sẽ đảm nhận trạng thái "Người tham gia" nếu cũng có "Người rời khỏi" trong cùng ngày.)
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;