Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Само един израз може да бъде посочен в списъка за избор, когато подзаявката не е въведена с EXISTS

Не можете да върнете две (или няколко) колони във вашата подзаявка, за да направите сравнението в WHERE A_ID IN (subquery) клауза - коя колона трябва да сравнява A_ID да се? Вашата подзаявка трябва да върне само една колона, необходима за сравнението, с колоната от другата страна на IN . Така че заявката трябва да бъде във формата:

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

Вие също искате да добавите сортиране, за да можете да избирате само от горните редове, но не е необходимо да връщате COUNT като колона, за да извършите своето сортиране; сортиране в ORDER клаузата е независима от колоните, върнати от заявката.

Опитайте нещо подобно:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server REPLACE() срещу TRANSLATE():Какви са разликите?

  2. Как да създадете множество едно към едно

  3. Как да коригирате „Опцията за конфигурация „Agent XPs“ не съществува“ в SQL Server (T-SQL)

  4. Свържете се със SQL Server чрез PDO с помощта на драйвер на SQL Server

  5. Как да импортирате DBF файл в SQL Server