【发布时间】:2018-01-18 17:40:37
【问题描述】:
您好,我正在学习编写 sql 查询,我正在尝试查询分类帐表以选择字段“ENCID”,其中每个不同的 ENCID 在单独的文件“TDATE”中有超过 4 个不同的值。 然后按第三个字段“ITEMTYPE”过滤
这就是我所拥有的:
SELECT
[ENCID]
,[PATIENTID]
,[ITEMTYPE]
,[Service Date]
,[Transaction Date]
,[Trans]
,[PracticeName]
FROM TABLE1
WHERE ITEMTYPE = 'S'
AND ENCID IN (SELECT ENCID FROM TABLE1 WHERE Count(Distinct [Transaction Date]) >4
AND ITEMTYPE = 'S')
我收到此错误“DataSource.Error:Microsoft SQL:聚合可能不会出现在 WHERE 子句中,除非它位于 HAVING 子句或选择列表中包含的子查询中,并且正在聚合的列是外部引用。”
【问题讨论】:
-
这是mysql还是MS SQL?
-
阅读错误信息。它说您需要使用
HAVING才能使用聚合函数。您不能将COUNT放在WHERE子句中。 -
这不是 MySQL。请修改您的标签
标签: sql-server subquery