Я пытаюсь получить список сотрудников и их национальностей:
select concat([Firstname],[Lastname]) as 'Full name',[C].[Label] as 'Nationality' FROM [Employee] [E]
left join [AF_AdminFile] [AFA] on E.AdminFileId=AFA.AdminFileId
left join [AF_Nationality] [AFN] on AFN.AdminFileId= AFA.AdminFileId
left join [Country] [C] on AFN.CountryId=C.ID
В результате получаю следующее:
В этом случае работник изменил свою национальность, поэтому в таблице Employee
есть атрибут с именем UpdatedDate
, который отличается от NULL (после изменения национальности)
Когда я добавляю условие даты в свой запрос как получение max(UpdatedDate)
, чтобы получить последнюю запись для "DavidFELTEN", я получаю тот же результат, что и на картинке выше:
select concat([Firstname],[Lastname]),[C].[Label] as 'Nationality' FROM [Employee] [E]
left join [AF_AdminFile] [AFA] on E.AdminFileId=AFA.AdminFileId
left join [AF_Nationality] [AFN] on AFN.AdminFileId= AFA.AdminFileId
left join [Country] [C] on AFN.CountryId=C.ID
where [E].UpdatedDate = (select max([Emp].UpdatedDate) from [Employee] [Emp]
where [Emp].EmployeeId=[E].EmployeeId)