首页 > 解决方案 > SSMS 有子句没有返回预期的结果

问题描述

我有一个没有给出预期结果的 HAVING 子句的查询。

查询如下:

SELECT COUNT(ClientProductID), SubCategoryName 
FROM v_EnterpriseStructure #
GROUP BY ClientProductID, SubCategoryName Having (PackSizeNum) > 5

我得到的错误如下(HAVING 子句包含在 GROUP BY 子句中,所以我不明白为什么它会给出这个错误?)。任何人都可以解释一下吗?

消息 8121,级别 16,状态 1,第 121 行列 'v_EnterpriseStructure.PackSizeNum' 在 HAVING 子句中无效,因为它既不包含在聚合函数或 GROUP BY 子句中。

标签: sqlsql-servertsql

解决方案


GROUP BY不应该ClientProductID在聚合中调用a COUNT()

SELECT COUNT(ClientProductID), SubCategoryName 
FROM v_EnterpriseStructure #
GROUP BY SubCategoryName 
HAVING COUNT(PackSizeNum) > 5;

推荐阅读