Kueri saya adalah sebagai berikut, dan berisi subquery di dalamnya:
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)
Kesalahan yang saya terima adalah ...
Only one expression can be specified in the select list when the subquery is not
introduced with EXISTS.`
Ketika saya menjalankan sub-permintaan saja, ia akan kembali dengan baik, jadi saya berasumsi ada beberapa masalah dengan permintaan utama?
sumber
*
membantu saya.Mengeluh tentang
di dalam subquery. Hanya satu kolom yang dapat dikembalikan dari subquery kecuali jika Anda menjalankan kueri yang ada. Saya tidak yakin mengapa Anda ingin melakukan penghitungan pada kolom yang sama dua kali, secara dangkal terlihat berlebihan untuk apa yang Anda lakukan. Subquery di sini hanya a filter , tidak sama dengan join. yaitu Anda menggunakannya untuk membatasi data, bukan untuk menentukan kolom apa yang akan kembali.
sumber
Terlepas dari respons yang sangat baik di sini, Anda dapat mencoba ini juga jika Anda ingin menggunakan sub-kueri apa adanya.
Pendekatan:
1) Pilih kolom yang diinginkan (Hanya 1) dari sub kueri Anda
2) Gunakan tempat untuk memetakan nama kolom
Kode:
sumber