[英]SQL Query to return records with certain conditions in several columns, and where only one record with a certain value exists
首先,我使用的 SQL Server 查询:
SELECT InfoSource
FROM dbo.orders
WHERE Price IS NULL
AND Date IS NULL
AND Expiry IS NULL
GROUP BY InfoSource
HAVING COUNT(InfoSource) = 1
许多记录可以具有相同的InfoSource
值。 我试图返回任何价值InfoSource
那里是仅只有一个存在该记录InfoSource
和WHERE
条件是一个记录中得到满足。
问题是,在我运行此查询后,我获取结果并对它们执行SELECT
语句只是为了验证记录是否满足条件,但许多InfoSource
值存在于多个记录中。 如果给定的InfoSource
有多个记录,则无论WHERE
条件如何,查询都不应返回该InfoSource
。
我是否以某种方式将GROUP BY
和HAVING
放错了位置?
无论 WHERE 条件如何,查询都不应返回该 InfoSource
目前, where
子句是在having
子句之前执行的。
您需要的是在之后执行它。
select * from
dbo.orders
WHERE Price IS NULL
AND Date IS NULL
AND Expiry IS NULL
AND InfoSource in (SELECT InfoSource
FROM dbo.orders
GROUP BY InfoSource
HAVING COUNT(InfoSource) = 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.