Sie können nicht zwei (oder mehrere) Spalten in Ihrer Unterabfrage zurückgeben, um den Vergleich in WHERE A_ID IN (subquery)
durchzuführen -Klausel - welche Spalte soll A_ID
vergleichen zu? Ihre Unterabfrage muss nur die eine Spalte zurückgeben, die für den Vergleich mit der Spalte auf der anderen Seite von IN
benötigt wird . Die Abfrage muss also folgende Form haben:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Sie möchten auch eine Sortierung hinzufügen, damit Sie nur aus den obersten Zeilen auswählen können, aber Sie müssen die ANZAHL nicht als Spalte zurückgeben, um Ihre Sortierung durchzuführen. Sortieren in der ORDER
-Klausel ist unabhängig von den von der Abfrage zurückgegebenen Spalten.
Probieren Sie so etwas aus:
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)