Advertisement
vinicius_oliveira

20220531

May 31st, 2022
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.94 KB | None | 0 0
  1. use exercicio13
  2. --1)Apresentar marca e modelo de carro e a soma total da distância percorrida pelos carros,
  3. --em viagens, de uma dada empresa, ordenado pela distância percorrida
  4. SELECT
  5.     car.marca
  6.     , car.modelo
  7.     , SUM(v.distanciaPercorrida) AS soma_distancia
  8. FROM carro AS car
  9.     INNER JOIN viagem AS v
  10.      ON v.idCarro = car.id
  11. GROUP BY car.id,car.modelo,car.marca
  12. ORDER BY soma_distancia DESC
  13. --2)Consultar Nomes das empresas que não tem carros cadastrados
  14. SELECT
  15.     emp.nome
  16. FROM empresa AS emp
  17.     LEFT OUTER JOIN carro AS car
  18.       ON emp.id = car.idEmpresa
  19. WHERE car.id IS NULL
  20. --3)Consultar Marca e modelos dos carros que não fizeram viagens
  21. SELECT
  22.     car.marca
  23.     , car.modelo
  24. FROM carro AS car
  25.     LEFT OUTER JOIN viagem AS v
  26.         ON v.idCarro = car.id
  27. WHERE v.idCarro IS NULL
  28. --4)Consultar quantas viagens foram feitas por cada carro (marca e modelo) de cada empresa
  29. --em ordem ascendente de nome de empresa e descendente de quantidade
  30. SELECT
  31.     COUNT(v.idCarro) AS qtd_viagens
  32.     , car.marca
  33.     , car.modelo   
  34.     , emp.nome
  35. FROM carro AS car
  36.     INNER JOIN viagem AS v
  37.         ON v.idCarro = car.id
  38.     INNER JOIN empresa AS emp
  39.         ON emp.id = car.idEmpresa
  40. GROUP by car.id,car.marca,car.modelo,emp.nome
  41. ORDER BY emp.nome ASC, qtd_viagens DESC
  42.  
  43. --5)Consultar o nome da empresa, a marca e o modelo do carro, a distância percorrida
  44. --e o valor total ganho por viagem, sabendo que para distâncias inferiores a 1000 km, o valor é R$10,00
  45. --por km e para viagens superiores a 1000 km, o valor é R$15,00 por km.
  46. SELECT
  47.     emp.nome
  48.     , car.marca
  49.     , car.modelo
  50.     , v.distanciaPercorrida
  51.     , CASE WHEN (v.distanciaPercorrida < 1000)
  52.         THEN
  53.             (v.distanciaPercorrida * 10)
  54.         ELSE   
  55.             (v.distanciaPercorrida * 15)
  56.      END AS 'Valor Total Viagem'
  57. FROM empresa AS emp
  58.     INNER JOIN carro AS car
  59.         ON car.idEmpresa = emp.id
  60.     INNER JOIN viagem AS v
  61.         ON v.idCarro = car.id
  62. GROUP BY car.id,distanciaPercorrida,car.marca,car.modelo,emp.nome
  63. ORDER BY distanciaPercorrida DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement