Мой запрос выглядит следующим образом и содержит подзапрос:
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)
Я получаю ошибку ...
Only one expression can be specified in the select list when the subquery is not
introduced with EXISTS.`
Когда я выполняю только один подзапрос, он возвращается нормально, так что я предполагаю, что есть какая-то проблема с основным запросом?
источник
*
меня помогло.Жалуется на
внутри подзапроса. Только один столбец может быть возвращен из подзапроса, если вы не выполняете существующий запрос. Я не уверен, почему вы хотите рассчитывать на один и тот же столбец дважды, внешне это выглядит излишним по сравнению с тем, что вы делаете. Подзапрос здесь представляет собой только фильтр, он не совпадает с объединением. то есть вы используете его для ограничения данных, а не для указания, какие столбцы вернуть.
источник
Помимо очень хороших ответов, вы также можете попробовать это, если хотите использовать свой подзапрос как есть.
Подходить:
1) Выберите нужный столбец (только 1) из вашего подзапроса
2) Используйте, где сопоставить имя столбца
Код:
источник