Vous ne pouvez pas renvoyer deux (ou plusieurs) colonnes dans votre sous-requête pour effectuer la comparaison dans la WHERE A_ID IN (subquery)
clause - quelle colonne est-elle censée comparer A_ID
pour? Votre sous-requête ne doit renvoyer que la colonne nécessaire à la comparaison avec la colonne de l'autre côté du IN
. La requête doit donc être de la forme :
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Vous souhaitez également ajouter un tri afin de pouvoir sélectionner uniquement les lignes du haut, mais vous n'avez pas besoin de renvoyer le COUNT sous forme de colonne pour effectuer votre tri ; tri dans le ORDER
La clause est indépendante des colonnes renvoyées par la requête.
Essayez quelque chose comme ceci :
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)