小编典典

在子孩子中选择最新记录

sql

我有以下表格/列:

Parent:
  ParentID

Child:
  ChildID
  ParentID

SubChild:
  SubChildID
  ChildID
  Date

Parent 有一对多的关系 Child

Child 有一对多的关系 SubChild

对于每个Parent,我都需要获取SubChild最新的Date价值。如何使用SQL执行此操作。我已经尝试使用MAX(Date),但我似乎无法弄清楚如何参与ParentChild成功。

理想结果集将包含ParentSubChild最新记录的所有列结合的所有。

注意:使用 MS SQL 2005+


阅读 141

收藏
2021-04-28

共1个答案

小编典典

看看使用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
2021-04-28