Я пытаюсь использовать функцию MAX()
как подзапрос, чтобы фильтровать результаты моего большего запроса за последние пару лет. Я понял, что это было немного сложнее, чем то, что я изначально считал нужным, поэтому я создал гораздо более простой запрос, чтобы проверить, что мне нужно делать с предложением HAVING
, чтобы заставить его работать.SQL-HAVING Раздел Проблема
Я проверил эти две должности, но это не помогло (SQL, HAVING clause explained, SQL: HAVING clause)
Я не думаю, что мое понимание пункта HAVING
правильно, потому что я не знаю, почему это не работает , Кто-нибудь сможет помочь и объяснить?
Примечание: [Fiscal Year]
- NVARCHAR
, поэтому я решил преобразовать его в INT
.
SELECT DISTINCT
D.[FISCAL YEAR]
FROM [Dates] AS D
GROUP BY D.[Fiscal Year]
HAVING CONVERT(INT,D.[Fiscal Year]) >= MAX(CONVERT(INT,D.[FISCAL YEAR])) -2
Это мои результаты:
(No column name)
2015
2014
2013
2012
2016
Эти результаты я должен получить:
(No column name)
2015
2014
2016
Почему бы не использовать Где заявление вместо этого? –