Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.43 KB | None | 0 0
  1. -- 1. Quantas viagens saíram de cada aeroporto em determinada data
  2. SELECT DISTINCT a.nm_aeroporto, COUNT(v.id_viagem)
  3.     FROM aeroporto a inner join terminal t on a.id_aeroporto = t.id_aeroporto
  4.                      inner join viagem v on t.id_terminal = v.id_terminal_saida
  5.     WHERE v.dt_saida between '2016-01-01' and '2016-12-31'
  6. GROUP BY a.nm_aeroporto ORDER BY 2 DESC;
  7.  
  8.  
  9. -- 2. Quanto cada passageiro gastou com bilhetes
  10. SELECT DISTINCT ps.id_passageiro AS 'id', ps.nm_completo AS 'Nome', SUM(pa.vl_parcela) AS 'Gastos'
  11.     FROM passageiro ps inner join bilhete b on ps.id_passageiro = b.id_passageiro
  12.                        inner join parcela pa on pa.id_bilhete = b.id_bilhete
  13.     WHERE pa.dt_pagamento IS NOT null
  14. GROUP BY ps.id_passageiro ORDER BY 3 DESC;
  15.  
  16.  
  17. -- 3. Número de parcelas que não foram pagas
  18. SELECT COUNT(pa.id_parcela)
  19.     FROM parcela pa
  20.     WHERE pa.dt_pagamento IS NULL;
  21.    
  22. -- 4. Quantas viagens as aeronaves de cada país já fizeram
  23. SELECT DISTINCT n.nm_nacionalidade as 'Pais', COUNT(av.id_aeronave) as 'N Aeronaves', COUNT(v.id_viagem) as 'N Viagens'
  24.     FROM nacionalidade n inner join aeronave av on av.id_nacionalidade = n.id_nacionalidade
  25.                          inner join viagem v on v.id_aeronave = av.id_aeronave
  26. GROUP BY n.nm_nacionalidade ORDER BY 3 DESC;
  27.  
  28. -- 5. Aeroporto com maior número de bilhetes vendidos à vista
  29. SELECT DISTINCT a.nm_aeroporto, COUNT(b.id_bilhete)
  30.     FROM aeroporto a inner join terminal t on a.id_aeroporto = t.id_aeroporto
  31.                      inner join viagem v on t.id_terminal = v.id_terminal_saida
  32.                      inner join assento ass on v.id_viagem = ass.id_viagem
  33.                      inner join bilhete b on ass.id_assento = b.id_assento
  34.     WHERE b.qt_parcelas = 1
  35. GROUP BY a.id_aeroporto ORDER BY 2 DESC;
  36.  
  37. -- 6. Nacionalidade com maior número de parcelas
  38. SELECT DISTINCT n.nm_nacionalidade, COUNT(pr.id_parcela)
  39.     FROM nacionalidade n inner join passageiro p on n.id_nacionalidade = p.id_nacionalidade
  40.                          inner join bilhete b on p.id_passageiro = b.id_passageiro
  41.                          inner join parcela pr on b.id_bilhete = pr.id_bilhete
  42. GROUP BY n.nm_nacionalidade ORDER BY 2 DESC;
  43.    
  44. -- 7. País que mais recebe viagens
  45. SELECT DISTINCT n.nm_nacionalidade, COUNT(v.id_viagem)
  46.     FROM nacionalidade n inner join aeroporto ar on n.id_nacionalidade = ar.id_nacionalidade
  47.                          inner join terminal t on ar.id_aeroporto = t.id_aeroporto
  48.                          inner join viagem v on t.id_terminal = v.id_terminal_destino
  49. GROUP BY n.nm_nacionalidade ORDER BY 2 DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement