我有一个"状态历史"包含员工就业状况列表的表格。我想做的是获取每个员工最新记录的列表,当且仅当他们的状态值为"最新状态"。
到目前为止,这是我对伪代码的查询
SELECT *
FROM EMP.EmployeeRecords
WHERE (THE LATEST STATUS RECORD) StatusValue = 'Up To Date'
答案 0 :(得分:1)
我认为你正在寻找MAX()函数John。请看下面的定义:
https://msdn.microsoft.com/en-us/library/ms187751.aspx
考虑一些假设:
假设您在EmployeeRecordsID
表上有一个EMP.EmployeeRecords
,它是一个自动递增的标识列,另一个是EmployeeName
来区分不同的员工;获取StatusValue = 'Up To Date'
您将执行以下操作的最新记录
select
LatestID = MAX(EmployeeRecordsID)
, EmployeeName
from EMP.EmployeeRecords
where StatusValue = 'Up To Date'
group by EmployeeName
答案 1 :(得分:1)
你的问题很糟糕。您应该拥有样本数据和所需的布局,以及使用您正在使用的数据库标记问题。
猜测数据的结构,这里有一个相关的子查询:
SELECT e.*
FROM EMP.EmployeeRecords e
WHERE e.statusdate = (select max(e2.statusdate)
from emp.EmployeeRecords e2
where e2.employeeid = e.employeeid
) and
e.StatusValue = 'Up To Date';