Bonsoir à tous,
voilà j'ai 2 tables qui ont toutes les 2 les mêmes champs
Je souhaite effectuer l'affichage du nombre d'incidents et le nom de l'équipement où certaines conditions sont vérifiées sur mes deux tables
voilà mon code SQL :
J'ai dans ma table 4 équipements NCBAY qui correspondent aux conditions dans ma table `incidents` et 1 équuipement test dans la table `autres_incidents`
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 SELECT COUNT( * ) Nb, Equipement FROM ( SELECT COUNT(*) NbInc, Equipement FROM `incidents` WHERE Traite = 'OUI' AND Mise_hors_trafic = 'OUI' AND (`Date_debut` BETWEEN '2008-01-01' AND '2009-12-31') UNION SELECT COUNT(*) NbAutInc, Equipement FROM `autres_incidents` WHERE Traite = 'OUI' AND Mise_hors_trafic = 'OUI' AND (`Date_debut` BETWEEN '2008-01-01' AND '2009-12-31') )TotalInc GROUP BY Equipement
Le soucis c'est que requête me renvoie ceci :
1 NCBAY
1 test
au lieu de
4 NCBAY
1 test
Je crois avoir trouvé l'origine du problème : ma requete à cause de l'UNION ne prends pas en compte les doublons de l'équipement
Dites-moi si je me trompe ...
en effet car
renvoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT COUNT( * ) NbInc, Equipement FROM `incidents` WHERE Traite = 'OUI' AND Mise_hors_trafic = 'OUI' AND (`Date_debut` BETWEEN '2008-01-01' AND '2009-12-31')
4 NCBAY
et
renvoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT COUNT( * ) NbAutInc, Equipement FROM `autres_incidents` WHERE Traite = 'OUI' AND Mise_hors_trafic = 'OUI' AND (`Date_debut` BETWEEN '2008-01-01' AND '2009-12-31') AND Equipement IS NOT NULL
1 test
Pouvez-vous m'aider à corriger ma requête parce que je ne sais comment la modifier pour obtenir 4 et 1 ??
Merci d'avance
Partager