sql >> Databasteknik >  >> RDS >> Sqlserver

Endast ett uttryck kan anges i urvalslistan när underfrågan inte introduceras med EXISTS

Du kan inte returnera två (eller flera) kolumner i din underfråga för att göra jämförelsen i WHERE A_ID IN (subquery) klausul - vilken kolumn är det tänkt att jämföra A_ID till? Din underfråga får bara returnera den kolumn som behövs för jämförelsen med kolumnen på andra sidan av IN . Så frågan måste ha formen:

SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)

Du vill också lägga till sortering så att du bara kan välja från de översta raderna, men du behöver inte returnera ANTAL som en kolumn för att göra din sortering; sortering i ORDER satsen är oberoende av kolumnerna som returneras av frågan.

Prova något sånt här:

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)


  1. Hur man startar, startar om, kontrollerar status och stoppar MySQL-server

  2. SQL Server Bulk Insert – Del 2

  3. Hur man skapar ett index i Django utan driftstopp

  4. SQL Server 2005 Använder DateAdd för att lägga till en dag till ett datum