我正在尝试使用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语句呢? –