Nie możesz zwrócić dwóch (lub wielu) kolumn w podzapytaniu, aby dokonać porównania w WHERE A_ID IN (subquery)
klauzula - z którą kolumną ma porównywać A_ID
do? Twoje podzapytanie musi zwrócić tylko jedną kolumnę potrzebną do porównania z kolumną po drugiej stronie IN
. Zapytanie musi więc mieć postać:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Chcesz również dodać sortowanie, aby móc wybierać tylko z górnych wierszy, ale nie musisz zwracać COUNT jako kolumny, aby wykonać sortowanie; sortowanie w ORDER
klauzula jest niezależna od kolumn zwracanych przez zapytanie.
Wypróbuj coś takiego:
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)