Jak zdobyć najnowszy rekord pracownika w wyroczni?
Mam tabelę pracowników z kolumnami, takimi jak emp_id, firstname, last_name, region_id, status i efficient_date.
Tabela pracowników może zawierać wiele wpisów dla tego samego pracownika o różnych datach i statusach.
Pracownik może mieć dwa statusy „Leaver” i „Joiner”.
id emp_id firstname region status effective_date
1 1 James Asia Joiner 1-Jan-2012
2 1 James UK Leaver 1-Aug-2012
3 1 James USA Joiner 1-Aug-2012
4 1 James Asia Leaver 1-May-2012
5 1 James UK Joiner 1-May-2012
6 1 James USA Leaver 1-Sep-2012
Z powyższymi danymi w tabeli pracowników, Jeśli chcę uzyskać najnowszy rekord Jamesa z 1 stycznia 2012 r., Dostanę rekord o identyfikatorze = 1,
Jeśli chcę uzyskać najnowszą płytę Jamesa, jak 1 maja 2012 r., Dostanę płytę o identyfikatorze = 5
Jeśli chcę uzyskać najnowszą płytę Jamesa z 1 sierpnia 2012 r., Dostanę płytę o identyfikatorze = 3,
Jeśli chcę uzyskać najnowszą płytę Jamesa, jak 1 września 2012 r., Dostanę rekord o identyfikatorze = 6
Następujące zapytanie poprawnie daje mi najnowszy rekord
SELECT
emp_id,
MAX(effective_date) AS latest_effective_date
FROM
EMPLOYEE
GROUP BY
emp_id
Ale w jaki sposób uzyskać inne kolumny, takie jak imię, region itp.
Jeśli umieściłem je w klauzuli select lub group by, nie otrzymam tylko najnowszego rekordu, ale także innych rekordów.