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

SQL selecione max(date) e valor correspondente


Você pode usar uma subconsulta. A subconsulta obterá o Max(CompletedDate) . Você então pega esse valor e junta-se à sua tabela novamente para recuperar a nota associada a essa data:
select ET1.TrainingID,
  ET1.CompletedDate,
  ET1.Notes
from HR_EmployeeTrainings ET1
inner join
(
  select Max(CompletedDate) CompletedDate, TrainingID
  from HR_EmployeeTrainings
  --where AvantiRecID IS NULL OR AvantiRecID = @avantiRecID
  group by TrainingID
) ET2
  on ET1.TrainingID = ET2.TrainingID
  and ET1.CompletedDate = ET2.CompletedDate
where ET1.AvantiRecID IS NULL OR ET1.AvantiRecID = @avantiRecID