Bonjour,
Afin de réaliser un rapport automatique, je dois obtenir à l'aide d'une requête SQL le nombre d'interventions en fonction du type d'intervention. Ce serait simple si je devais le faire sur une seule table mais en l'occurrence ma requête doit être effectuée sur 5 tables (une table pour chaque type de mobilier (abi bus, potelet ...) parce que les interventions de mon utilisateur sont différentes pour chaque mobilier (pour le détail)). Ne pouvant effectuer des COUNT de plusieurs table différentes dans un même SELECT, j'ai effectué plusieurs SELECT que j'ai réunis par un UNION ALL. Voici en détail ma requête :
Le résultat que j'obtiens n'est pas tout à fait celui que j'espérais. En effet, voici ce qu'il me renvoie :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 (SELECT count(met_trans_interventions_abribus."objectid") AS nb_intervention_abribus, met_trans_interventions_abribus."type_inter" as type_inter FROM "metier"."met_trans_interventions_abribus" met_trans_interventions_abribus GROUP BY type_inter ORDER BY type_inter ASC) UNION all( SELECT count(met_trans_interventions_potelet."objectid") AS nb_intervention_potelet, met_trans_interventions_potelet."type_inter" as type_inter FROM "metier"."met_trans_interventions_potelet" met_trans_interventions_potelet GROUP BY type_inter ORDER BY type_inter ASC) UNION all( SELECT count(met_trans_interventions_romus."objectid") AS nb_intervention_romus, met_trans_interventions_romus."type_inter" as type_inter FROM "metier"."met_trans_interventions_romus" met_trans_interventions_romus GROUP BY type_inter ORDER BY type_inter ASC) UNION all( SELECT count(met_trans_interventions_way1."objectid") AS nb_intervention_way1, met_trans_interventions_way1."type_inter" as type_inter FROM "metier"."met_trans_interventions_way1" met_trans_interventions_way1 GROUP BY type_inter ORDER BY type_inter ASC) UNION all( SELECT count(met_trans_interventions_way2."objectid") AS nb_intervention_way2, met_trans_interventions_way2."type_inter" as type_inter FROM "metier"."met_trans_interventions_way2" met_trans_interventions_way2 GROUP BY type_inter ORDER BY type_inter ASC)
nb_intervention_abribus type_inter
23 Intervention sur tournée
11
6 Intervention sur tournée
3
2 Intervention d'urgence
31 Intervention sur tournée
5
1
1
Il me met donc bout à bout les résultats de chacun de mes SELECT, or ce que j'aimerais c'est qu'il me les regroupe en fonction du type d'intervention. Voici le résultat que j'aimerais obtenir :
nb_intervention type_inter
60 Intervention sur tournée
2 Intervention d'urgence
21
J'ai eu beau chercher dans les différentes fonctions SQL, je ne vois pas comment faire.
Pourriez-vous m'aider ?
Merci d'avance pour votre aide.
Partager