Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Benötigen Sie eine Abfrage, um einen eindeutigen Elternteil mit einem Kind zu verknüpfen, das nicht eindeutig ist, aber mit MAX eindeutig gemacht werden kann

Sie können dies mit einem ROW_NUMBER tun über das TransDate für jede UserId :

;With Cte As
(
    Select  L.[ID],
            L.[UserID],
            L.[Time],
            L.[Action],
            R.[Role],
            Row_Number() Over (Partition By [L].[UserId] Order By [R].[TransDate] Desc) Row_Number
    From    [TEST111].[dbo].[tblLog]    as L
    Join    [TEST111].[dbo].[tblRole]   as R    On  L.[UserID] = R.[UserID]
)
Select  [Id], [UserId], [Time], [Action], [Role]
From    Cte
Where   [Row_Number] = 1

Diese Abfrage ruft die neuesten Transaktionsinformationen für jede UserId ab .