this is incompatible with sql_mode=only_full_group

Bonjour
Lorsque je veux accéder au menu « balance de comptes » sur le module Compta, une erreur SQL apparait :

Error Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‹ dolibarr.t.rowid › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Error Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‹ dolibarr.t.rowid › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Error Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‹ dolibarr.t.rowid › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

L’application est hébergé sur un serveur Ubuntu php7 MySql 5.7.13

Y-a-t-il une correction a faire sur la requête SQL ?
Merci pour votre aide

Bonjour,

Quelques précisions :
- Module comptabilité ou comptabilité avancée ?
- Quelle version de Dolibarr ?

Merci d’avance !

Bonjour
Cherche si tu as un fichier /etc/mysql/conf.d/mysql.cnf et ajoute dedans:

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

et redémarre le serveur mysql
si cela n’a aucun effet, tu revient en arrière et tu attends une autre solution.

Fred

Bonjour
Comptabilité avancée
version 3.9.2

Merci frederic34.
Mais, en effet, ça n’a pas d’effet…

J’ai retrouver ces requêtes :

2016-08-23T10:45:34.081724Z 6 Query SELECT t.numero_compte, SUM(t.debit) as debit, SUM(t.credit) as credit FROM llx_accounting_bookkeeping as t WHERE t.doc_date>=‹ 20160101000000 › AND t.doc_date<=‹ 20161231000000 › GROUP BY t.numero_compte ORDER BY t.rowid ASC
2016-08-23T10:45:34.082829Z 6 Query SELECT t.numero_compte, SUM(t.debit) as debit, SUM(t.credit) as credit FROM llx_accounting_bookkeeping as t WHERE t.doc_date>=‹ 20160101000000 › AND t.doc_date<=‹ 20161231000000 › GROUP BY t.numero_compte ORDER BY t.rowid ASC LIMIT 26

Il ya un problème dans ces requêtes…
Y a-t-il un correctif ? ou suis-je le seul à constater ces erreurs ?

Bonjour,

Essayons de mettre à jour avec la dernière version disponible de la comptabilité avancée pour la 3.9 voir si cela fonctionne

Il faut pour cela télécharger la version 3.9 backported sur le github et mettre à jour uniquement le dossier accountancy.

Lien de la version backported : Github 3.9 backported téléchargement

Dans l’attente de votre retour,
Salutations,
Alex

1 « J'aime »

Il n’y pas d’erreur apparente !
Merci !!

J’ai parlé trop vite.
Au premier affichage je n’ai plus d’erreurs.
Mais si je calsse autrement que sur AccountAccountingShort, j’ai encore de erreurs :
Par exemple en cliquant sur libellé compte :
Error Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‹ dolibarr.t.label_compte › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Error Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‹ dolibarr.t.label_compte › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Error Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‹ dolibarr.t.label_compte › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Bonjour


Tu peux savoir si ONLY_FULL_GROUP_BY est activé dans ta config en exécutant select @@sql_mode dans phpmyadmin
Fred

1 « J'aime »

Merci Fred.
En effet, en désactivant le mode ONLY_FULL_GROUP_BY ( ce qui n’est pas standard ) correctement, nous n’avons plus d’erreur sur l’application.
Mais, à priori le module est toujours en cours d’amélioration.
Donc, si les développeurs de ce module corrigent les requêtes SQL, n’hésitez pas à me le faire savoir.
En tout cas merci à Fred et Alex pour leur aide précieuse !

Bonsoir,
Attention car ONLY_FULL_GROUP_BY est de base sur les dernières MySQL ! Va falloir faire les requetes en prenat en compte cette option cer les hébergeurs (pas moi) ne vont pas chercher.
@+