Bonjour,
Je voudrais récupérer le nombre d'interventions de chaque personnel entre le 01/01/2010 à 00:00:00 et le 31/12/2010 à 23:59:59.
Voici ma requête :
Ci-dessous, les structures de mes tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT CONCAT(b.prenom,' ',b.nom) AS nom, COUNT(b.id) AS compteur FROM `interventions_personnels` a, `personnels` b, `interventions` c WHERE c.horaire_declenchement BETWEEN '2010-01-01 00:00:00' AND '2010-12-31 23:59:59' AND a.personnel=b.id GROUP BY b.id ORDER BY compteur DESC, nom ASC
J'ai un résultat pour "compteur" qui est multiplié par le nombre total d'interventions, comme par exemple, Monsieur DUPONT qui a compteur=4 interventions alors qu'il n'en a qu'une seule. Et il y a en tout 4 interventions dans la base de données.
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
19
20
21
22
23
24
25
26
27 CREATE TABLE IF NOT EXISTS `interventions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `numero_alerte` varchar(12) NOT NULL, `horaire_declenchement` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `horaire_dc` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `duree` time NOT NULL, `type` int(11) NOT NULL, `vehicule` int(11) NOT NULL, `conducteur` int(11) NOT NULL, `voie` int(11) NOT NULL, `commune` int(11) NOT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ; CREATE TABLE IF NOT EXISTS `interventions_personnels` ( `intervention` int(11) NOT NULL, `personnel` int(11) NOT NULL, PRIMARY KEY (`intervention`,`personnel`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `personnels` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nom` varchar(45) NOT NULL, `prenom` varchar(45) NOT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
J'imagine que j'ai oublié un paramètre dans ma requête mais je ne sais pas lequel...
Merci pour votre aide,
ZiP
Partager