forked from Jaffar-Hussein/Les-Caserne-de-Pompiers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Requetes.sql
166 lines (131 loc) · 4.15 KB
/
Requetes.sql
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
--1) quels est le nombre de casernes?
select COUNT (Id_caserne) as "le nombre de casernes"
from caserne;
/* résulat
le nombre de casernes
-----------------------
4
(1 ligne)
*/
--2) quels sont les pompiers des casernes situés à Graguiguan?
select Id_pompier, Nom, Prenom
from Pompier, caserne
where caserne.Id_caserne = Pompier.Id_caserne
and caserne.Nom_ville = 'Draguignan';
/*
id_pompier | nom | prenom
------------+---------+---------
1 | Valjean | Jean
2 | Conchon | Sylvain
(2 lignes)
*/
--3) Quelles les casernes protégeant à la fois Brignoles et Le Luc?
select caserne.Id_caserne as "les casernes protégeant à la fois Brignoles et Le Luc"
from caserne, Protege
where caserne.Id_caserne = Protege.Id_caserne
and Protege.Nom_ville = 'Brignoles'
intersect
select caserne.Id_caserne as "les casernes protégeant à la fois Brignoles et Le Luc"
from caserne, Protege
where caserne.Id_caserne = Protege.Id_caserne
and Protege.Nom_ville = 'Le Luc';
/*
les casernes protégeant à la fois Brignoles et Le Luc
-------------------------------------------------------
1
4
(2 lignes)
*/
--4) quels sont les pompiers de la caserne 3 habitant à plus de 5 kms de la caserne "la plus proche" pour leur adresse
select Id_pompier, Nom, Prenom
from Pompier, Adresse
where pompier.nom_rue = Adresse.nom_rue
and pompier.Num_rue = Adresse.Num_rue
and pompier.Nom_ville = Adresse.NOM_ville
and pompier.cp = Adresse.cp
and pompier.Id_caserne = 3
and Adresse.Km > 5;
/*
id_pompier | nom | prenom
------------+---------+--------
1 | Montant | Yves
4 | Jumper | Jolly
(2 lignes)
*/
--5) quel est le nombre de pompiers par caserne?
select caserne.Id_caserne, COUNT(Pompier.Id_pompier) as "nbre de pompier"
from Pompier , caserne
where Pompier.Id_caserne = caserne.Id_caserne
group by caserne.Id_caserne;
/*
id_caserne | nbre de pompier
------------+-----------------
4 | 1
2 | 2
1 | 1
3 | 4
(4 lignes)
*/
--6) quelles sont les casernes ayant atteint leur capacité maximale humaine?
--select pompier.Id_caserne, COUNT(Id_pompier)
--from pompier, caserne
--where caserne.Id_caserne = pompier.Id_caserne
--group by pompier.Id_caserne;
-- 7) quelles sont les pompier qui ne travail dans la ville où ils habitent ?
select Id_pompier, Nom, Prenom
from pompier, caserne
where pompier.Id_caserne = caserne.Id_caserne
and pompier.Nom_ville != caserne.Nom_ville;
/*
id_pompier | nom | prenom
------------+------------+---------
1 | Marchand | Louis
1 | Valjean | Jean
1 | Antoinette | Marie
2 | Montant | Sylvain
3 | Savairien | Jean
2 | Conchon | Sylvain
4 | Jumper | Jolly
(7 lignes)
*/
-- 8) lister par ordre décroissant les casernes en fonction du nombre de pompiers qui y travaillent?
select caserne.Id_caserne, COUNT(pompier.Id_pompier)
from pompier, caserne
where pompier.Id_caserne = caserne.Id_caserne
group by caserne.Id_caserne
order by (COUNT(pompier.Id_pompier)) DESC;
/*
id_caserne | count
------------+-------
3 | 4
2 | 2
4 | 1
1 | 1
(4 lignes)
*/
--9) Donnez pour chaque caserne le volume total d'eau de ses citernes
select caserne.Id_caserne, SUM(Contenance) as "le volume total"
from caserne, Citerne
where caserne.Id_caserne = Citerne.Id_caserne
group by caserne.Id_caserne;
/*
id_caserne | le volume total
------------+-----------------
2 | 2950
3 | 1200
1 | 2300
(3 lignes)
*/
--10) Dans caserne ce trouve les citernes de plus gros conteance?
select caserne.Id_caserne, MAX(Contenance)
from caserne, Citerne
where caserne.Id_caserne = Citerne.Id_caserne
group by caserne.Id_caserne;
/*
id_caserne | le volume total
------------+-----------------
2 | 2950
3 | 1200
1 | 2300
(3 lignes)
*/