Максимальная дата между 2 датами

#sql-server

#sql-сервер

Вопрос:

Как я могу найти последнюю дату в столбце, но ограничить ее между 2 датами

 SELECT [Weight]
FROM [weighinevent] w
WHERE [Date] = (SELECT MAX([Date]) WHERE [Date] BETWEEN @StartDate AND @EndDate AND w.[userid] = @userid )
  

Это то, что у меня есть. Это правильно?

Ответ №1:

Нет, это неверно. Подзапросы также должны определять таблицу, из которой они выбирают. Но вы можете упорядочить по дате и использовать только первую запись

 SELECT top 1 Weight
FROM weighinevent
WHERE Date BETWEEN @StartDate AND @EndDate 
AND userid = @userid
ORDER BY Date DESC