Using having count() in exists clause

sql, sql-server-2008

Solution

You don't correlate the two queries:

SELECT  X
FROM    A
WHERE   (
        SELECT  COUNT(DISTINCT y)
        FROM    b
        WHERE   b.x = a.x
        ) > 2

Problem

I am trying to make a SQL query where the subquery in an 'exists' clause has a 'having' clause. The strange thing is that. There is no error and the subquery works as a stand-alone query. However, the whole query gives exactly the same results with the 'having' clause as without. This is kind of what my query looks like: ``` SELECT X FROM A WHERE exists ( SELECT X, count(distinct Y) FROM B GROUP BY X HAVING count(distinct Y) > 2) ``` So I'm trying to select the rows from A where X has more then two occurances of Y in B. However, the results also include records that do not exist in the subquery. What am I doing wrong here?

Original source