1

目前我的查询返回三个记录。原因是 CRT_STAT 表找到了 3 条匹配记录。我想获取日期最近的记录。我的CRT_STAT表有一个名为DISPOSITION_DATE.

我需要在查询的这一部分添加一个日期检查,它选择它找到的记录组的最新日期(在本例中为三个)。

CROSS APPLY (
    SELECT *
    FROM CCH_PUBLIC.dbo.CRT_STAT as crtStat
    WHERE crtStat.TRS_IDN = o.TRS_IDN 
    AND crtSTat.DISPOSITION_DATE ='DATE IS MOST RECENT OF THE THREE RECORDS FOUND'

) crtStat

这样做最有效的方法是什么?

4

1 回答 1

4

只需将 order by 与 top 1 一起使用:

CROSS APPLY (
    SELECT top 1 *
    FROM CCH_PUBLIC.dbo.CRT_STAT as crtStat
    WHERE crtStat.TRS_IDN = o.TRS_IDN 
    order by crtSTat.DISPOSITION_DATE desc
) crtStat

这将返回最新记录。如果您已经从 CRT_STAT 获取数据,您还可以将行号与 DISPOSITION_DATE 一起使用,而无需使用交叉应用。

于 2016-07-27T14:39:08.757 回答