Bonjour,
Je cherche à faire une requete sql qui me retourne le montant saisi pour chaque mois pour les x derniers mois en prenant le mois en cours. Mon problème c'est que la sa me retourne tout les mois que j'ai dans ma base
Voici la requete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function obtenirReqRecapDerniersMois($unIdMembre, $unMois) { $unMois = getMoisPrecedent($unMois); $requete = "select LigneFrais.mois AS mois, SUM(LigneFrais.quantite * Frais.montant) as montantFrais from LigneFrais inner join FicheFrais on LigneFrais.idMembre = ficheFrais.idMembre inner join Frais on Frais.id = LigneFrais.idFrais where FicheFrais.idMembre='" . $unIdMembre. "' AND FicheFrais.mois = '".$unMois."' group by FicheFrais.mois, LigneFrais.mois"; return $requete; }Voilà comment est interprêter ma requete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 fonction getMoisPrecedent: function getMoisPrecedent($mois){ $numAnnee =substr($mois,0,4); $numMois =substr($mois,4,2); if($numMois=="01"){ $numMois = "12"; $numAnnee--; } else{ $numMois--; } if(strlen($numMois)==1){ $numMois="0".$numMois; } else $numMois= $numMois; return $numAnnee.$numMois; }
select LigneFrais.mois AS mois, SUM(LigneFrais.quantite * frais.montant) as montantFrais from LigneFrais inner join FicheFrais on LigneFrais.idMembre = ficheFrais.idMembre inner join Frais on Frais.id = LigneFrais.idFrais where FicheFrais.idMembre='1' AND FicheFrais.mois = '201308' group by FicheFrais.mois, LigneFrais.mois
Ma requete prendre juste le mois d'août alors qu'elle devrait les X derniers mois en partant de octobre
mon champs "mois" est de type char(6): aaaamm
Partager