我正在嘗試使用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
爲什麼不使用Where語句呢? –