SQL Server - 如何根据两个表中的日期显示最近的记录

问题描述:

我有2个表。我想根据最近的日期列出记录。例如:从下列表格中,我想使用select语句显示ID 2和ID 4。 ID 2和4是根据第二个表中的日期最近的。请帮助我查询。谢谢。SQL Server - 如何根据两个表中的日期显示最近的记录

ID EXID PID REASON 
1 1 1 XYZ 
2 2 1 ABX 
3 3 2 NNN 
4 4 2 AAA 

EXID EXDATE 
1 1/1/2011 
2 4/1/2011 
3 3/1/2011 
4 5/1/2011 

在这里,你应该这样做。如果您有任何问题,请告诉我。

SELECT 
    TBL.ID, 
    TBL.EXDATE 
FROM 
(
    SELECT 
     T1.ID, 
     T2.EXDATE, 
     ROW_NUMBER() OVER(PARTITION BY T1.PID ORDER BY T2.EXDATE DESC) AS 'RN' 
    FROM 
     Table1 T1 
    INNER JOIN Table2 T2 
     ON T1.EXID = T2.EXID 
) TBL 
WHERE 
    TBL.RN = 1 
+0

我改变了它的PID记录而不是EXID。从你的测试数据来看,这似乎就是你想要的。 –

+0

工程很棒。非常感谢。 – M99

+0

没问题,我很高兴能帮上忙。 –