Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.80 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.    
  23. -- 4. Quantas viagens as aeronaves de cada país já fizeram
  24. SELECT DISTINCT n.nm_nacionalidade as 'Pais', COUNT(av.id_aeronave) as 'N Aeronaves', COUNT(v.id_viagem) as 'N Viagens'
  25.     FROM nacionalidade n inner join aeronave av on av.id_nacionalidade = n.id_nacionalidade
  26.                          inner join viagem v on v.id_aeronave = av.id_aeronave
  27. GROUP BY n.nm_nacionalidade ORDER BY 3 DESC;
  28.  
  29.  
  30. -- 5. Aeroporto com maior número de bilhetes vendidos à vista
  31. SELECT DISTINCT a.nm_aeroporto, COUNT(b.id_bilhete)
  32.     FROM aeroporto a inner join terminal t on a.id_aeroporto = t.id_aeroporto
  33.                      inner join viagem v on t.id_terminal = v.id_terminal_saida
  34.                      inner join assento ass on v.id_viagem = ass.id_viagem
  35.                      inner join bilhete b on ass.id_assento = b.id_assento
  36.     WHERE b.qt_parcelas = 1
  37. GROUP BY a.id_aeroporto ORDER BY 2 DESC;
  38.  
  39.  
  40. -- 6. Nacionalidade com maior número de parcelas
  41. SELECT DISTINCT n.nm_nacionalidade, COUNT(pr.id_parcela)
  42.     FROM nacionalidade n inner join passageiro p on n.id_nacionalidade = p.id_nacionalidade
  43.                          inner join bilhete b on p.id_passageiro = b.id_passageiro
  44.                          inner join parcela pr on b.id_bilhete = pr.id_bilhete
  45. GROUP BY n.nm_nacionalidade ORDER BY 2 DESC;
  46.    
  47.    
  48. -- 7. País que mais recebe viagens
  49. SELECT DISTINCT n.nm_nacionalidade, COUNT(v.id_viagem)
  50.     FROM nacionalidade n inner join aeroporto ar on n.id_nacionalidade = ar.id_nacionalidade
  51.                          inner join terminal t on ar.id_aeroporto = t.id_aeroporto
  52.                          inner join viagem v on t.id_terminal = v.id_terminal_destino
  53. GROUP BY n.nm_nacionalidade ORDER BY 2 DESC;
  54.  
  55. -- 8. Porcentagem de preenchimento de cada viagem
  56. SELECT DISTINCT v.id_viagem, (COUNT(ass.id_assento) * 100) / av.qt_assentos AS '% preenchimento'
  57.     FROM assento ass inner join viagem v on ass.id_assento = v.id_viagem
  58.                      inner join aeronave av on v.id_aeronave = av.id_aeronave
  59.     WHERE ass.fg_disponivel = false
  60. GROUP BY v.id_viagem ORDER BY 2 DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement