錯誤「SELECT 清單的表達式不在GROUP BY 子句中並且包含非聚合列' libelle'," 在使用SELECT 清單和GROUP 中的非聚合列執行查詢時通常會遇到BY條款。要解決此錯誤,需要確保所有非聚合列都包含在 GROUP BY 子句中,或使用 SUM()、AVG() 或 COUNT() 等函數進行聚合。
中在這種特定情況下,查詢嘗試選擇包括「libelle」、「credit_initial」、「disponible_v」和「montant」在內的欄位。但是,GROUP BY 子句中僅包含“libelle”,而“montant”則不是聚合的。若要解決此問題,請修改查詢以在 GROUP BY 子句中包含“montant”,或使用 SUM() 或其他適當的函數進行聚合。
解決方案
這是查詢的更新版本,其中GROUP BY 中包含「montant」子句:
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
或者,可以使用SUM() 調整查詢以聚合'montant':
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
透過進行這些更改,查詢將符合 MySQL 5.7' s 嚴格的 GROUP BY 模式並避免錯誤。
以上是如何修正「SELECT 清單的表達式不在 GROUP BY 子句中」MySQL 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!