Você não pode retornar duas (ou várias) colunas em sua subconsulta para fazer a comparação no
WHERE A_ID IN (subquery)
cláusula - qual coluna deve comparar A_ID
para? Sua subconsulta deve retornar apenas a coluna necessária para a comparação com a coluna do outro lado do IN
. Portanto, a consulta precisa estar no formato:SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Você também deseja adicionar classificação para poder selecionar apenas nas linhas superiores, mas não precisa retornar COUNT como uma coluna para fazer sua classificação; ordenando no
ORDER
cláusula é independente das colunas retornadas pela consulta. Tente algo assim:
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)