Возможный дубликат:
Как получить запись таблицы, которая содержит максимальное значение?
У меня есть сводный запрос вроде:
SELECT TrainingID, Max(CompletedDate) as CompletedDate, Max(Notes) as Notes --This will only return the longest notes entry
FROM HR_EmployeeTrainings ET
WHERE (ET.AvantiRecID IS NULL OR ET.AvantiRecID = @avantiRecID)
GROUP BY AvantiRecID, TrainingID
Работает и возвращает правильные данные большую часть времени, но я заметил проблему. Поле Notes, которое возвращается, не обязательно соответствует записи, из которой выполняется max (completedDate). Вместо этого это будет самая длинная строка? Или тот, который имеет самое высокое значение ASCII? Что делает SQL Server в случае связи между двумя записями? Я даже не уверен. Я хочу получить поле примечаний из записи max (completedDate). Как мне это сделать?