V poddotazu nemůžete vrátit dva (nebo více) sloupce, abyste provedli porovnání v WHERE A_ID IN (subquery)
klauzule - který sloupec má porovnávat A_ID
na? Váš poddotaz musí vrátit pouze jeden sloupec potřebný pro porovnání se sloupcem na druhé straně IN
. Dotaz tedy musí mít tvar:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Chcete také přidat řazení, abyste mohli vybírat pouze z horních řádků, ale k seřazení nemusíte vracet COUNT jako sloupec; řazení v ORDER
klauzule je nezávislá na sloupcích vrácených dotazem.
Zkuste něco takového:
select count(distinct dNum)
from myDB.dbo.AQ
where A_ID in
(SELECT DISTINCT TOP (0.1) PERCENT A_ID
FROM myDB.dbo.AQ
WHERE M > 1 and B = 0
GROUP BY A_ID
ORDER BY COUNT(DISTINCT dNum) DESC)