Regroupement par année avec champs de type CHAR contenant "Annee+Mois"
Hello,
je dois créer une requête et faire des stats sur des dates et avoir un résultat comme celui ci :
Periode | Nb Accident | Nb Heure
---------------------------------
2016 | 12 | 21520
2015 | 4 | 19510
2014 ........
le tout sur 5 ans glissant.
la requête contenant les données ( pour la colonne heure travaillé ) est :
Code:
1 2 3 4 5
|
SELECT HP_annee_mois [annee],SUM(hp_heure) [heure_travail_societe] FROM TPE_heure_effectif
WHERE LEFT((TPE_heure_effectif.HP_annee_mois),4) >= YEAR(SYSDATETIME())-5
AND LEFT((TPE_heure_effectif.HP_annee_mois),4) <= YEAR(SYSDATETIME())+1
GROUP BY HP_annee_mois |
le résultat donne :
année | heure_travail_societe
-----------------------------
201601 | 77121
201602 | 74000
201603 | 72120
201505 | 65512
mais j’aurai voulu plutôt un regroupement par année avec la somme des heures travaillés.
avez vous une idée ? une fonction a me conseillé ?
Merci :-)
"HP_annee_mois" est un CHAR(6)
merci pour vos reponse.
en fait "HP_annee_mois" est un CHAR(6) ( la base de donnée est mal conçus ) et donc pour cette raison là que j'obtiens pas ce que je souhaite.
pour la requete :
Code:
1 2 3
| Select year(madate), sum(hp_heure)
From Matable
GROUP BY YEAR(madate) |
J'ai deja ça de preparer mais comme la requete contenu dans le left joint ( celle ou je cherche la solution ) contiendra les années et que le nombre heure.
le but c'est juste de regrouper le résultat par année pour qu'il passe de :
Code:
1 2 3 4 5 6
| année | heure_travail_societe
-----------------------------
201601 | 77121
201602 | 74000
201703 | 72120
201505 | 65512 |
à
Code:
1 2 3 4 5 6
|
année | heure_travail_societe
-----------------------------
2016 | 140000
2017 | 72120
2015 | 65512 |
ensuite je n'aurai pas de soucis normalement pour le liée a mon autre table via LEFT JOIN et en prenant comme parametre la Date