Ma requête est la suivante et contient une sous-requête:
select count(distinct dNum)
from myDB.dbo.AQ
where A_ID in
(SELECT DISTINCT TOP (0.1) PERCENT A_ID,
COUNT(DISTINCT dNum) AS ud
FROM myDB.dbo.AQ
WHERE M > 1 and B = 0
GROUP BY A_ID ORDER BY ud DESC)
L'erreur que je reçois est ...
Only one expression can be specified in the select list when the subquery is not
introduced with EXISTS.`
Lorsque j'exécute la sous-requête seule, elle renvoie très bien, donc je suppose qu'il y a un problème avec la requête principale?
la source
*
m'a aidé.Il se plaint de
à l'intérieur de la sous-requête. Une seule colonne peut être renvoyée à partir de la sous-requête, sauf si vous exécutez une requête existe. Je ne sais pas pourquoi vous voulez compter deux fois sur la même colonne, superficiellement, cela semble redondant par rapport à ce que vous faites. La sous-requête ici n'est qu'un filtre, ce n'est pas la même chose qu'une jointure. c'est-à-dire que vous l'utilisez pour restreindre les données, pas pour spécifier les colonnes à récupérer.
la source
Outre de très bonnes réponses ici, vous pouvez également essayer ceci si vous souhaitez utiliser votre sous-requête telle quelle.
Approche:
1) Sélectionnez la colonne souhaitée (Seulement 1) de votre sous-requête
2) Utilisez où mapper le nom de la colonne
Code:
la source