首页 > 解决方案 > 在 SQL 查询中需要帮助以获取最近创建的带有状态的作业记录

问题描述

我需要具有最近状态的不同 Jobid

jobs table
------------------ 
JobId Status CreatedDate 
------------------
1     sent   4/24/2018  
1     draft  4/23/2018 
2     sent   4/22/2018
2     draft  4/21/2018
1     req    4/20/2018

我需要这样的结果

---------------
JobId  Status
---------------
1       Sent
2       Sent 

我试过了,但给出了具有不同状态记录的重复 jobid

select distinct JobId, Status, CreatedDate from Jobs order by CreatedDate desc

标签: sqlsql-server

解决方案


我会建议:

select j.*
from jobs j
where j.CreatedDate = (select max(j2.CreatedDate) from jobs j2 where j2.jobid = j.jobid);

如果您在 上有一个索引jobs(jobid, CreatedDate),那么这可能是最快的选择。


推荐阅读