Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat MySQL \'Ungkapan Senarai PILIH Bukan dalam KUMPULAN OLEH Klausa\'?

Bagaimana untuk Membetulkan Ralat MySQL \'Ungkapan Senarai PILIH Bukan dalam KUMPULAN OLEH Klausa\'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 06:14:15217semak imbas

How to Fix the

Menyelesaikan masalah "Ungkapan Senarai SELECT Bukan dalam KUMPULAN OLEH Klausa" Ralat

Ralat, "Ungkapan senarai SELECT tiada dalam klausa KUMPULAN OLEH dan mengandungi lajur tidak teragregat ' libelle'," biasanya ditemui apabila melaksanakan pertanyaan dengan lajur tidak teragregat dalam senarai SELECT dan KUMPULAN MENGIKUT klausa. Untuk menyelesaikan ralat ini, adalah perlu untuk memastikan bahawa semua lajur tidak teragregat disertakan dalam klausa GROUP BY atau diagregatkan menggunakan fungsi seperti SUM(), AVG(), atau COUNT().

Dalam kes khusus ini, pertanyaan cuba memilih lajur termasuk 'libelle', 'credit_initial', 'disponible_v' dan 'montant'. Walau bagaimanapun, hanya 'libelle' yang disertakan dalam klausa GROUP BY, manakala 'montant' bukan agregat. Untuk menyelesaikan isu ini, ubah suai pertanyaan sama ada untuk memasukkan 'montant' dalam klausa GROUP BY atau agregatnya menggunakan SUM() atau fungsi lain yang sesuai.

SOLUTION

Berikut ialah versi terkini pertanyaan yang termasuk 'montant' dalam GROUP BY klausa:

SELECT libelle, credit_initial, disponible_v, SUM(montant) AS total_montant 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type 
AND annee.id_annee = fiche.id_annee 
AND annee = YEAR(current_timestamp) 
GROUP BY libelle, credit_initial, disponible_v 
ORDER BY libelle ASC

Sebaliknya, pertanyaan boleh dilaraskan untuk mengagregat 'montant' menggunakan SUM():

SELECT libelle, credit_initial, disponible_v, SUM(montant) 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type 
AND annee.id_annee = fiche.id_annee 
AND annee = YEAR(current_timestamp) 
GROUP BY libelle 
ORDER BY libelle ASC

Dengan membuat perubahan ini, pertanyaan akan mematuhi MySQL 5.7' s mod KUMPULAN MENGIKUT dan elakkan ralat.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat MySQL \'Ungkapan Senarai PILIH Bukan dalam KUMPULAN OLEH Klausa\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn