Joining to MAX date record in group

前端 未结 3 1755
耶瑟儿~
耶瑟儿~ 2020-12-14 06:06
Job
--------
Id
Description


JobStatus
----------
Id
JobId
StatusTypeId
Date

How do I get the current JobStatus for all jobs?

3条回答
  •  臣服心动
    2020-12-14 06:55

    In 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
    

    In 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
            )
    

    These queries handle possible duplicates on Date correctly.

提交回复
热议问题