Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL select max(date) und den entsprechenden Wert

Sie können eine Unterabfrage verwenden. Die Unterabfrage erhält das Max(CompletedDate) . Sie nehmen dann diesen Wert und verbinden sich erneut mit Ihrem Tisch, um die mit diesem Datum verknüpfte Notiz abzurufen:

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