Не можете да върнете две (или няколко) колони във вашата подзаявка, за да направите сравнението в WHERE A_ID IN (subquery)
клауза - коя колона трябва да сравнява A_ID
да се? Вашата подзаявка трябва да върне само една колона, необходима за сравнението, с колоната от другата страна на IN
. Така че заявката трябва да бъде във формата:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Вие също искате да добавите сортиране, за да можете да избирате само от горните редове, но не е необходимо да връщате COUNT като колона, за да извършите своето сортиране; сортиране в ORDER
клаузата е независима от колоните, върнати от заявката.
Опитайте нещо подобно:
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)