Professional Documents
Culture Documents
Practica BBDD
Practica BBDD
Exercicis de pràctiques
Informàtica avançada
Grau en gestió aeronàutica Mòdul de BBDD
Full de respostes
Número de grup de pràctiques: Grup 2
Noms dels membres del grup: Aysha Ait Ouaddi, Greisy Palma Garro
1) Mostreu el NIF de qui ha comprat bitllets per al passatger amb NIF 88778241V, i quants
n'han comprat
SELECT DISTINCT r.nif_client, COUNT(*) AS NUM_BITLLETS
FROM reserva r, bitllet b
WHERE b.nif_passatger='88778241V' AND r.localitzador=b.localitzador
GROUP BY r.nif_client
ORDER BY 1,2
2) Mostreu el nom dels passatgers que tenen més de 8 bitllets i el nombre de bitllets que
tenen
SELECT DISTINCT p.nom, COUNT(*) AS NUM_BITLLETS
FROM reserva r, bitllet b, persona p
WHERE r.nif_client=p.nif AND p.nif=b.nif_passatger AND r.localitzador= b.localitzador
GROUP BY p.nom
HAVING COUNT(*)>8
ORDER BY 1,2
3) Mostreu el nom i els cognoms dels passatgers que han embarcat exactament 3 vegades.
SELECT DISTINCT p.nom
FROM seient s, bitllet b, persona p
WHERE s.nif_passatger=b.nif_passatger AND p.nif=b.nif_passatger AND b.codi_vol=s.codi_vol AND
b.data=s.data AND s.embarcat='SI'
GROUP BY p.nom
HAVING COUNT(*)=3
ORDER BY 1
4) Digueu quin és el nombre màxim de passatgers en un vol.
SELECT max(count(nif_passatger)) as max_passatgers
FROM bitllet
–1–
Exercicis de pràctiques
Informàtica avançada
Grau en gestió aeronàutica Mòdul de BBDD
GROUP BY codi_vol, data
5) NIF i nom de la/les persona/es que ha(n) fet menys reserves (no té per què viatjar).
SELECT p.nom, p.nif
FROM persona p, reserva r
WHERE p.NIF=r.NIF_client
GROUP BY p.nom, p.nif
HAVING count (r.nif_client) <= ALL((select COUNT(*) from reserva r))
6) Codi vol, data, origen i destinació dels vols tenen més seients reservats.
SELECT v.codi_vol, v.data, v.origen, v.destinacio
FROM vol v, seient s
WHERE s.codi_vol=v.codi_vol and v.data=s.data and nif_passatger is not null
GROUP BY v.codi_vol, v.data, v.origen, v.destinacio
HAVING count(*)>=ALL(select count(*) from seient
where NIF_passatger is not null group by codi_vol, data)
7) Nom del(s) passatger(s) que ha(n) facturat més pes en un sol vol.
SELECT p.nom
FROM persona p, maleta m
WHERE p.nif=m.nif_passatger
GROUP BY p.nom
HAVING count(*)>=ALL(select count(*) from persona p, maleta m where p.nif=m.nif_passatger
group by p.nom)
8) Nom dels passatgers que han pagat almenys una vegada amb Mastercard i nombre de
GROUP BY p.nom
–2–
Exercicis de pràctiques
Informàtica avançada
Grau en gestió aeronàutica Mòdul de BBDD
HAVING count(*)>=1
–3–