Resultat d'une requete sur plusieur mois

Eléphant du PHP | 440 Messages

04 juin 2009, 15:21

Bonjour à tous,

je voudrait savoir si il est possible de réaliser une requete sous mysql qui me retourne un résultat sur plusieurs mois.

J'ai ma table réclamation:
id_reclamation
Date_reclamation



Je voudrait avoir en une seul requete, qui me compte le nombre de réclamation du mois n, n-1,n-2.etc..

Exemple:

Code : Tout sélectionner

Select i.count(id_reclamation) as mois00, e.count(id_reclamation) as mois01,etc... From Reclamation WHERE i.month(date_reclamation) =05 AND i.year(date_reclamation) =2009 AND e.month(date_reclamation) =04 AND e.year(date_reclamation) =2009 etc...

Code : Tout sélectionner

Structure de la table `reclamation` -- CREATE TABLE `reclamation` ( `id_reclamation` int(11) NOT NULL auto_increment, `date_reclamation` date NOT NULL COMMENT 'date', `heure_reclamation` time NOT NULL, `id_user` int(11) NOT NULL COMMENT 'id user', `id_client` int(11) NOT NULL COMMENT 'client', `des_reclamation` text NOT NULL, `date_fabrication` date default NULL, `date_livraison` date default NULL, `date_dluo` date default NULL, `equipe` varchar(3) default ' ', `n_carton` int(11) default NULL, `n_bl` varchar(8) default ' ', `n_facture` varchar(8) default ' ', `lot_reclamation` int(4) default NULL, `retour_produit` tinyint(1) NOT NULL, `date_retour_reclamation` date default NULL, PRIMARY KEY (`id_reclamation`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=151 ; -- -- Contenu de la table `reclamation` --

Merci d'avance

guigui69

ViPHP
ViPHP | 2291 Messages

04 juin 2009, 15:55

Salut,
Un exemple.
$dateDebut ='2009-01-01';
$dateFin = '2009-06-30';
WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."'
Ici la requête va prendre les données du 01 janvier 2009 au 30 Juin 2009 en se servant du champ date.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 440 Messages

04 juin 2009, 22:38

Merci pour ta réponse.


Mais en faite c'est pas ca, je voudrait savoir si en une seul requête je pouvait obtenir les resultats des mois précédent

ViPHP
ViPHP | 2291 Messages

05 juin 2009, 19:36

Merci pour ta réponse.


Mais en faite c'est pas ca, je voudrait savoir si en une seul requête je pouvait obtenir les resultats des mois précédent
Bin la requete plus haut elle fait quoi :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 245 Messages

09 juin 2009, 12:10

select count(id_reclamation) as nb_reclamations, left(date_reclamation,7) as mois_reclamation from reclamation group by left(date_reclamation,7)
quelque chose comme cela t'aide-t-il?

On utilise ici la fonction LEFT(nom_colonne,nb_caracteres) pour tronquer les dates. (attention l'emploi de la methode LEFT() empeche l'utilisation des indexs.) en mois et tout regrouper en mois.

si une date _reclamation est de la forme 2009-05-01 left(date_reclamation,7) donnera juste 2009-05

(la fonction RIGHT(nom_colonne,nb_caracteres) existe aussi)