Job
--------
Id
Description
JobStatus
----------
Id
JobId
StatusTypeId
Date
如何获取所有作业的当前 JobStatus
?
所以像......
SELECT * FROM Job j
INNER JOIN ( /* Select rows with MAX(Date) grouped by JobId */ ) s
ON j.Id = s.JobId
(我确信已经有很多类似的问题,但我找不到任何完全符合我需要的问题)。
最佳答案
在SQL Server 2005+
中:
SELECT *
FROM job j
OUTER APPLY
(
SELECT TOP 1 *
FROM jobstatus js
WHERE js.jobid = j.jobid
ORDER BY
js.date DESC
) js
在SQL Server 2000
中:
SELECT *
FROM job j
LEFT JOIN
jobstatus js
ON js.id =
(
SELECT TOP 1 id
FROM jobstatus jsi
WHERE jsi.jobid = j.jobid
ORDER BY
jsi.date DESC
)
这些查询正确处理Date
上可能的重复项。
关于sql-server - 加入群组中的最大日期记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4851949/