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 :
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
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`

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
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')
renvoie
4 NCBAY

et
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
renvoie
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