Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Potrzebujesz zapytania, aby powiązać unikalnego rodzica z dzieckiem, które nie jest unikalne, ale może być unikalne dzięki MAX

Możesz to zrobić za pomocą ROW_NUMBER nad TransDate dla każdego 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

To zapytanie pobierze najnowsze informacje o transakcji dla każdego UserId .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie SQL Server jako magazynu obrazów

  2. Klucze podstawowe w SQL Server

  3. Kilka świetnych wiadomości dla klientów wersji Standard Edition w programie SQL Server 2014

  4. Generuj daty między zakresami dat

  5. Czy ktoś mógłby wyjaśnić różnicę między dwoma zapytaniami?