Page 1 sur 1

Resultat d'une requete sur plusieur mois

Posté : 04 juin 2009, 15:21
par guigui69
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

Posté : 04 juin 2009, 15:55
par dunbar
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.

Posté : 04 juin 2009, 22:38
par guigui69
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

Posté : 05 juin 2009, 19:36
par dunbar
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 :?:

Posté : 09 juin 2009, 12:10
par enneite
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)