Der Fehler „Ausdruck der SELECT-Liste ist nicht in der GROUP BY-Klausel und enthält nicht aggregierte Spalte ' „libelle“ tritt typischerweise auf, wenn eine Abfrage mit einer nicht aggregierten Spalte in der SELECT-Liste und der GROUP BY-Klausel ausgeführt wird. Um diesen Fehler zu beheben, muss sichergestellt werden, dass alle nicht aggregierten Spalten in der GROUP BY-Klausel enthalten sind oder mithilfe von Funktionen wie SUM(), AVG() oder COUNT() aggregiert werden.
In In diesem speziellen Fall versucht die Abfrage, Spalten wie „libelle“, „credit_initial“, „disponible_v“ und „montant“ auszuwählen. Allerdings ist nur „libelle“ in der GROUP BY-Klausel enthalten, während „montant“ nicht aggregiert ist. Um dieses Problem zu beheben, ändern Sie die Abfrage so, dass sie entweder „montant“ in die GROUP BY-Klausel einschließt oder sie mit SUM() oder einer anderen geeigneten Funktion aggregiert.
LÖSUNG
Hier ist eine aktualisierte Version der Abfrage, die „montant“ in der GROUP BY-Klausel enthält:
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
Alternativ kann die Abfrage auf Aggregat angepasst werden 'montant' mit 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
Durch diese Änderungen entspricht die Abfrage dem strengen GROUP BY-Modus von MySQL 5.7 und vermeidet den Fehler.
Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „Ausdruck der SELECT-Liste nicht in der GROUP BY-Klausel'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!