交叉应用获取最新日期

CROSS APPLY getting the most recent date

目前我的查询返回了三个记录。原因是 CRT_STAT table 找到了 3 条匹配记录。我想获得最近日期的记录。我的 CRT_STAT table 有一个名为 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

最有效的方法是什么?

只使用 order by 前 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

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