如果值为“SQL选择员工的最新记录”;精选;

如果值为“SQL选择员工的最新记录”;精选;,sql,Sql,我有一个“状态历史记录”表,其中包含员工的雇佣状态列表。我想做的是获取每个员工最新记录的列表,当且仅当他们的状态值为“最新”时 到目前为止,这是我对伪代码的查询 SELECT * FROM EMP.EmployeeRecords WHERE (THE LATEST STATUS RECORD) StatusValue = 'Up To Date' 我想您正在寻找MAX()函数John。有关定义,请参见以下内容: 考虑到一些假设: 假设您在EMP.EMP.EmployeeRecords表上有

我有一个“状态历史记录”表,其中包含员工的雇佣状态列表。我想做的是获取每个员工最新记录的列表,当且仅当他们的状态值为“最新”时

到目前为止,这是我对伪代码的查询

SELECT * 
FROM EMP.EmployeeRecords
WHERE (THE LATEST STATUS RECORD) StatusValue = 'Up To Date'

我想您正在寻找MAX()函数John。有关定义,请参见以下内容:

考虑到一些假设:

假设您在
EMP.EMP.EmployeeRecords
表上有一个
EmployeeRecordsID
,它是一个自动递增的标识列以及一个
EmployeeName
来区分不同的员工;要获取状态值为“最新”的最新记录,请执行以下操作

select 
  LatestID = MAX(EmployeeRecordsID)
  , EmployeeName
from EMP.EmployeeRecords
where StatusValue = 'Up To Date'
group by EmployeeName

你的问题结构很差。您应该有示例数据和所需的布局,以及使用您正在使用的数据库标记问题

猜测数据结构,下面是一个相关子查询:

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';

添加表定义、一些示例表数据和预期结果!你应该用你正在使用的数据库标记你的问题。这不是一个真正的答案。应该是一个评论。