SELECT
`annee`,
`date_creation_origine`,
`date_creation2`,
ROUND(SUM(`temps` / 60),
0) AS `temps`,
SUM(`NbR`) AS `NbR`,
SUM(`NbV`) AS `NbV`,
SUM(`NbQ`) AS `NbQ`,
IFNULL(GG.liste_groupes,
'') AS `liste_groupes`,
IFNULL(GG.liste_groupes_ids,
'') AS `liste_groupes_ids`
FROM (
SELECT YEAR(DS.`date_creation`) AS `annee`,
DS.`id_utilisateur` AS `idu`,
DS.`date_creation` AS `date_creation_origine`,
MONTH(DS.`date_creation`) AS `date_creation2`,
DS.`id_utilisateur`,
G.`id` AS iDG,
G.`id_auteur` AS idG_Auteur,
-1 AS idQ,
-1 AS adQ_Auteur,
SUM(`temps`) AS `temps`,
COUNT(*) AS `NbR`,
0 AS `NbV`,
SUM(`nb_justes`)+SUM(`nb_faux`) AS `NbQ`
FROM `defis_scores` AS DS
LEFT JOIN `defis` AS D ON D.`id` = DS.`id_defi`
LEFT JOIN `groupes_utilisateurs` AS GU ON GU.`id_utilisateur`=DS.`id_utilisateur`
LEFT JOIN `groupes` AS G ON G.`id`=GU.`id_groupe`
WHERE DATE(DS.`date_creation`) BETWEEN DATE('2025-09-01')
AND DATE('2026-08-01')
GROUP BY `id_utilisateur`,
MONTH(DS.`date_creation`)
UNION
SELECT YEAR(R.`date_creation`) AS `annee`,
R.`id_utilisateur` AS `idu`,
R.`date_creation` AS `date_creation_origine`,
MONTH(R.`date_creation`) AS `date_creation2`,
R.`id_utilisateur`,
G.`id` AS iDG,
G.`id_auteur` AS idG_Auteur,
Q.`id` AS idQ,
Q.`id_auteur` AS adQ_Auteur,
SUM(R.`temps`) AS `temps`,
COUNT(*) AS `NbR`,
0 AS `NbV`,
SUM(R.`total`) AS `NbQ`
FROM `resultats` AS R
LEFT JOIN `questionnaires` AS Q ON Q.`id` = R.`id_questionnaire`
LEFT JOIN `groupes_utilisateurs` AS GU ON GU.`id_utilisateur`=R.`id_utilisateur`
LEFT JOIN `groupes` AS G ON G.`id`=GU.`id_groupe`
WHERE DATE(R.`date_creation`) BETWEEN DATE('2025-09-01')
AND DATE('2026-08-01')
AND R.`categorie`=''
GROUP BY `id_utilisateur`,
MONTH(R.`date_creation`)
UNION
SELECT YEAR(V.`date_creation`) AS `annee`,
V.`id_utilisateur` AS `idu`,
V.`date_creation` AS `date_creation_origine`,
MONTH(V.`date_creation`) AS `date_creation2`,
V.`id_utilisateur`,
G.`id` AS iDG,
G.`id_auteur` AS idG_Auteur,
Q.`id` AS idQ,
Q.`id_auteur` AS adQ_Auteur,
SUM(V.`temps`) AS `temps`,
0 AS `NbR`,
COUNT(*) AS `NbV`,
COUNT(*) AS `NbQ`
FROM `votes` AS V
LEFT JOIN `questionnaires` AS Q ON Q.`id` = V.`id_questionnaire`
LEFT JOIN `groupes_utilisateurs` AS GU ON GU.`id_utilisateur`=V.`id_utilisateur`
LEFT JOIN `groupes` AS G ON G.`id`=GU.`id_groupe`
WHERE DATE(V.`date_creation`) BETWEEN DATE('2025-09-01')
AND DATE('2026-08-01')
GROUP BY `id_utilisateur`,
MONTH(V.`date_creation`) ) AS F
LEFT JOIN `utilisateurs` AS U ON F.`id_utilisateur`=U.`id`
LEFT JOIN (
SELECT U.`id`,
group_concat(cast(GU.`nom` AS char) separator ',
') AS `liste_groupes`,
group_concat(cast(GU.`id_utilisateur` AS char) separator ',
') AS `liste_groupes_ids`
FROM `utilisateurs` AS U
LEFT JOIN (
SELECT `id_utilisateur`,
`nom`
FROM `groupes_utilisateurs` AS GU
LEFT JOIN `groupes` AS G ON G.`id`=GU.`id_groupe`
WHERE IFNULL(G.`date_inactif`,
-1)=-1 ) AS GU ON GU.`id_utilisateur`=U.`id`
GROUP BY U.`id` ) AS GG ON GG.`id`=U.`id`
WHERE U.`id_compte`= ââș 'LOMI' ââ
AND (NOT `acces` < ââș 3 ââ )
AND U.`actif`=1
AND U.`archiver`=0
AND ( idG_Auteur= ââș 2 ââ
OR idG IN (
SELECT `id`
FROM `groupes` AS G
WHERE ( G.`id_auteur`= ââș 2 ââ
OR G.`id` IN (
SELECT `id_groupe`
FROM `equipes_groupes`
WHERE `id_equipe` IN (
SELECT `id_equipe`
FROM `equipes_auteurs`
WHERE `id_auteur`= ââș 2 ââ ) ) ) ) )
GROUP BY `date_creation2`
ORDER BY `annee` DESC,
`date_creation2` DESC