У меня есть таблица сотрудников с такими столбцами, как emp_id, firstname, lastname, region_id, status и effective_date.Как получить последнюю запись сотрудника в оракуле?
Таблица служащих может иметь несколько записей для одного и того же сотрудника с разными датами и статусами эффективности.
Сотрудник может иметь два статуса «Ливер» и «Столяр».
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
С учетом указанных выше данных в таблице сотрудников, если я хочу, чтобы получить последнюю запись Джемса по состоянию на 1 января 2012 года, я хотел бы получить запись с идентификатором = 1,
Если я хочу, чтобы получить последняя запись Джеймсу, как на 1 мая 2012 года, я хотел бы получить запись с идентификатором = 5
Если я хочу, чтобы получить последнюю запись Джемса, как на 1 августа 2012 года, я хотел бы получить запись с идентификатором = 3,
Если я хочу получить последнюю запись о james, так как 1 сентября 2012 года, я бы получил запись с id = 6
После запроса правильно дает мне последнюю запись
SELECT
emp_id,
MAX(effective_date) AS latest_effective_date
FROM
EMPLOYEE
GROUP BY
emp_id
Но как я могу получить другие столбцы, такие как FirstName, регион и т.д.
Если я ставлю их в пункте выбора или группы пунктом, Я не просто получаю последнюю запись, но и другие записи.
Не могли бы вы объяснить это, пожалуйста? «Если я хочу получить последнюю запись о Джеймсе, как 1 августа 2012 года, я бы получил запись с id = 3» почему бы не 2? – Sebas
@Sebas. Конечно, Джеймс переезжает из региона Великобритании в США 1 августа 2012 года. Итак, если мне нужно посмотреть, где Джеймс, как 1 августа 2012 года, он должен вернуть США, а не Великобританию. Следовательно, запись с id = 3, а не id = 2. – ashishjmeshram
, тогда вся ваша логика должна быть пересмотрена, ваш собственный запрос возвращает «правильно последнюю запись» только случайно. Я сейчас ушел из этой темы, у вас есть аналитические проблемы для решения. – Sebas