CROSS APPLY得到最近的日期
问题描述:
目前我的查询返回三条记录。原因是CRT_STAT表找到了3条匹配的记录。我想获得具有最新日期的记录。我的CRT_STAT
表有一个名为DISPOSITION_DATE
的列。CROSS APPLY得到最近的日期
我需要在查询的这一部分添加一个日期检查,它选择它找到的记录组的最近日期(在本例中为三个)。
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使用命令:
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中使用行号,而无需使用交叉应用。
+0
伙计那么聪明。我之前选择了TOP 1,但它并没有给我我需要的记录。你是真正的MVP。谢谢 – Lostaunaum
'TOP 1 ... ORDER BY DISPOSITION_DATE DESC'? –