我对此陈述有困难:
SELECT DISTINCT
User_ID
FROM
[WebServiceMGT].[dbo].[WEBSERVICE_USERS] P
INNER JOIN [WebServiceMGT].[dbo].[FEATURE_AUTHORIZATIONS] C ON P.USER_SYSID = C.USER_SYSID
WHERE
c.Feature_SysID in ('1','2')
GROUP BY
c.USER_SYSID
HAVING
COUNT(c.USER_SYSID) = 2
我收到错误栏' WebServiceMGT.dbo.WEBSERVICE_USERS.USER_ID'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
任何人都知道为什么?
由于
答案 0 :(得分:1)
原因很简单:select
子句在group by
子句之后执行。由于您有group by
子句,因此当您到达select
子句时,您将拥有已修改的关系。此修改后的关系包含分组列,其他列只能通过聚合函数使用。
如果您将distinct
列放入User_ID
代替group by
USER_SYSID