Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

recuperar o registro mais recente para cada cliente

;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;

Tente evitar palavras reservadas (e nomes de colunas vagos) como [DATE] ...