-
Notifications
You must be signed in to change notification settings - Fork 0
/
query.sql
100 lines (77 loc) · 2.87 KB
/
query.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
/**
Operazione 1: Inserire una nuova prenotazione
*/
INSERT INTO Prenotazione (Codice_Prenotazione, Data_Prenotazione, ID_Passeggero, ID_Volo, ID_Posto)
VALUES (..., ..., [1,30], [1,30], [1,50]);
/**
Operazione 2: Visualizzare i voli prenotati da un passeggero
*/
SELECT V.ID_Volo, V.Numero_Volo, V.Data_Partenza, V.Ora_Partenza, V.Aeroporto_Partenza, V.Aeroporto_Arrivo
FROM Volo V
JOIN Prenotazione P ON V.ID_Volo = P.ID_Volo
WHERE P.ID_Passeggero = <?>;
<?> = Inserisci IDPasseggero [1,30]
/**
Operazione 3: Vedere il numero di aerei per ogni compagnia aerea
*/
SELECT CompagniaAerea.ID_Compagnia, CompagniaAerea.Nome_Compagnia, COUNT(Aereo.ID_Aereo) AS Numero_Aerei
FROM CompagniaAerea
JOIN Aereo ON CompagniaAerea.ID_Compagnia = Aereo.Compagnia
GROUP BY CompagniaAerea.ID_Compagnia, CompagniaAerea.Nome_Compagnia;
/**
Operazione 4: Trovare il volo che prevede più servizi a bordo
*/
SELECT ID_Volo, COUNT(ID_ServizioVolo) AS Numero_Servizi
FROM Servizio
GROUP BY ID_Volo
HAVING COUNT(ID_ServizioVolo) = (SELECT MAX(CountServizi)
FROM (SELECT COUNT(ID_ServizioVolo) AS CountServizi
FROM Servizio
GROUP BY ID_Volo) AS CountTable);
/**
Operazione 5: Ricerca di tutti i voli sotto la guida di un pilota specifico
*/
SELECT V.ID_Volo, V.Numero_Volo, V.Data_Partenza, V.Ora_Partenza, V.Aeroporto_Partenza, V.Aeroporto_Arrivo
FROM Volo V
JOIN AssegnazioneEquipaggio AE ON V.ID_Volo = AE.ID_Volo
JOIN Equipaggio E ON AE.ID_Equipaggio = E.ID_Equipaggio
WHERE E.ID_Equipaggio = <?>;
<?> = Inserisci IDEquipaggio [1,12]
/**
Operazione 6: Contare il numero di aerei per ogni produttore
*/
SELECT Numero_Serie as Produttore, COUNT(ID_Aereo) AS Numero_Aerei
FROM Aereo
GROUP BY Produttore;
/**
Operazione 7: Visualizzare i passeggeri che hanno prenotato un posto “Business”
*/
SELECT P.ID_Passeggero, P.Nome, P.Cognome
FROM Prenotazione PR
JOIN Posto PO ON PR.ID_Posto = PO.ID_Posto
JOIN Passeggero P ON PR.ID_Passeggero = P.ID_Passeggero
WHERE PO.Classe = 'Business';
/**
Operazione 8: Trovare la città con il maggior numero di aeroporti
*/
SELECT Città, COUNT(ID_Aeroporto) AS Numero_Aeroporti
FROM Aeroporto
GROUP BY Città
ORDER BY Numero_Aeroporti DESC
LIMIT 1;
/**
Operazione 9: Visualizzare i voli in partenza da un determinato aeroporto
*/
SELECT V.ID_Volo, V.Numero_Volo, V.Data_Partenza, V.Ora_Partenza, V.Aeroporto_Partenza, V.Aeroporto_Arrivo
FROM Volo V
JOIN Aeroporto AP ON V.Aeroporto_Partenza = AP.ID_Aeroporto
WHERE AP.ID_Aeroporto = <?>;
<?> = Inserisci IDAeroporto [1,10]
/**
Operazione 10: Visualizzare i voli in arrivo da un determinato aeroporto
*/
SELECT V.ID_Volo, V.Numero_Volo, V.Data_Partenza, V.Ora_Partenza, V.Aeroporto_Partenza, V.Aeroporto_Arrivo
FROM Volo V
JOIN Aeroporto AP ON V.Aeroporto_Arrivo = AP.ID_Aeroporto
WHERE AP.ID_Aeroporto = <?>;
<?> = Inserisci IDAeroporto [1,10]