交叉申请获取最近的日期

时间:2016-07-27 14:35:20

标签: sql-server smss

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

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

{{1}}

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

1 个答案:

答案 0 :(得分:2)

只需使用排名靠前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的行号,而无需使用交叉申请。