Du kan ikke returnere to (eller flere) kolonner i din underforespørgsel for at udføre sammenligningen i WHERE A_ID IN (subquery)
klausul - hvilken kolonne skal den sammenligne A_ID
til? Din underforespørgsel må kun returnere den ene kolonne, der er nødvendig for sammenligningen med kolonnen på den anden side af IN
. Så forespørgslen skal have formen:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Du vil også tilføje sortering, så du kun kan vælge fra de øverste rækker, men du behøver ikke at returnere COUNT som en kolonne for at udføre din sortering; sortering i ORDER
klausulen er uafhængig af de kolonner, der returneres af forespørgslen.
Prøv noget som dette:
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)