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

SQL Server-如何根据两个表中的日期显示最新记录,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有两张桌子。我想根据最近的日期列出记录。例如:从下表中,我想使用select语句显示ID2和ID4。根据第二个表中的日期,ID 2和4是最新的。请帮我解答这个问题。多谢各位 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语句显示ID2和ID4。根据第二个表中的日期,ID 2和4是最新的。请帮我解答这个问题。多谢各位

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

我将其更改为按PID而不是EXID对记录进行分区。从你的测试数据来看,这似乎是你想要的。效果很好。非常感谢。没问题,我很高兴能帮上忙。