我有以下表格/列:
Parent: ParentID Child: ChildID ParentID SubChild: SubChildID ChildID Date
Parent 有一对多的关系 Child
Parent
Child
Child 有一对多的关系 SubChild
SubChild
对于每个Parent,我都需要获取SubChild最新的Date价值。如何使用SQL执行此操作。我已经尝试使用MAX(Date),但我似乎无法弄清楚如何参与Parent和Child成功。
Date
MAX(Date)
理想结果集将包含Parent与SubChild最新记录的所有列结合的所有。
注意:使用 MS SQL 2005+
看看使用ROW_NUMBER
就像是
;WITH Vals AS ( SELECT p.ParentID, sc.SubChildID, ROW_NUMBER() OVER (PARTITION BY p.ParentID ORDER BY sc.[Date] DESC) RowID FROM Parent p INNER JOIN Child c ON p.ParentID = c.ParentID INNER JOIN SubChild sc ON c.ChildID = sc.ChildID ) SELECT ParentID, SubChildID FROM Vals WHERE RowID = 1