You are on page 1of 3

 

  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  

SELECT distinct p.nom, count(*) 

FROM persona p, reserva r 

WHERE p.nif=r.nif_client and r.mode_pagament='Mastercard' 

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 

9) Quin aeroport té més vols programats de sortida? 


 
SELECT a.nom 
FROM aeroport a, vol v 
WHERE v.origen=a.codi_aeroport 
GROUP BY a.nom 
HAVING  COUNT(*)=(SELECT  MAX(COUNT(*))  FROM  aeroport  a,  vol  v  WHERE 
v.origen=a.codi_aeroport GROUP BY a.nom) 
 
10) ) Nom de la persona que ha fet la reserva més cara. 
 
SELECT p.nom 
FROM persona p, reserva r 
WHERE r.preu=(SELECT MAX(r.preu)FROM reserva r) AND r.nif_client=p.nif 
 
11) De  les  reserves  pagades  amb  Visa,  doneu  el  nombre màxim de maletes facturades per a un 
sol bitllet. 
 
SELECT MAX(count(codi_maleta)) as n_max_maletes_fact 

FROM maleta m, reserva r, bitllet b 

WHERE m.nif_passatger=b.nif_passatger AND mode_pagament='Visa' 

and m.data=b.data and m.codi_vol=b.codi_vol and r.localitzador=b.localitzador 

GROUP BY m.codi_vol, m.data 

–3– 
 

You might also like