Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

récupérer l'enregistrement le plus récent pour chaque client

;WITH x AS 
(
    SELECT ID, NAME, [DATE], 
      rn = ROW_NUMBER() OVER 
      (PARTITION BY NAME ORDER BY [DATE] DESC)
    FROM @TESTABLE
)
SELECT ID, NAME, [DATE] FROM x WHERE rn = 1
  ORDER BY [DATE] DESC;

Essayez d'éviter les mots réservés (et les noms de colonnes vagues) comme [DATE] ...