è necessario specificare tutte le colonne che non si sta usando per una funzione di aggregazione nella vostra GROUP BY
clausola in questo modo:
select libelle,credit_initial,disponible_v,sum(montant) as 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
La modalità full_group_by
rende praticamente si scrive SQL più idiomatica. Puoi disattivare questa impostazione se lo desideri. Esistono diversi modi per eseguire ciò che sono descritti nello MySQL Documentation. Ecco la definizione di MySQL di ciò che ho detto sopra:
MySQL 5.7.5 e su implementa il rilevamento della dipendenza funzionale. Se la modalità SQL ONLY_FULL_GROUP_BY è abilitata (che è predefinita), MySQL rifiuta le query per le quali l'elenco di selezione, la condizione HAVING o l'elenco ORDER BY si riferiscono a colonne non aggregate che non sono né denominate in clausola GROUP BY. funzionalmente dipendente da loro. (Prima 5.7.5, MySQL non rileva dipendenza funzionale e ONLY_FULL_GROUP_BY non è abilitato di default. Per una descrizione di pre-5.7.5 comportamento, vedere la MySQL 5.6 Manuale di riferimento.)
Sei ottenere l'errore perché sei su una versione 5.7.5 <
fonte
2016-06-21 18:21:04
ci si aspetta che tu abbia libelle, credit_initila e disponible_v tutto nel gruppo per dichiarazione –
http://mechanics.flite.com/blog/2013/02/12/why-i-use- only-full-group-by/ – bishop
Possibile duplicato di [Ricevo un errore in MySql relativo a solo \ _full \ _group \ _by quando si esegue una query] (http://stackoverflow.com/questions/34115174/i-am -getting-an-error-in-mysql-related-to-only-full-group-by-when-executing-a-qu) –