Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

È necessaria una query per mettere in relazione un genitore univoco con un figlio che non è univoco ma può essere reso univoco con MAX

Puoi farlo con un ROW_NUMBER sopra il TransDate per ogni 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

Questa query estrarrà le informazioni sulle transazioni più recenti per ogni UserId .