quinta-feira, 16 de outubro de 2014

Banco de Dados Exercicio - Post Gree SQL

 Exercício 16 out



1 selecionar o faturamento  do posto nos anos de 2012 e 2014

select sum (valor) from valor_abastecimento join abastecimento using (id_abastecimento)
where data_abastecimento between '2012-01-01 00:00:00' and '2012-12-31 23:59:59' or data_abastecimento between '2014-01-01 00:00:00' and '2014-12-31 23:59:59'


-- com extract --

 select sum (valor) from valor_abastecimento join abastecimento using (id_abastecimento)
where extract (year from data_abastecimento) in (2012,2014)



2 - selecionar a placa dos carros e a quantidade abastecida por cada um

 select v.placa, sum(a.qtd_abastecida) from veiculo v join abastecimento a using (id_veiculo) group by 1



3 selecionar o nome do funcionário e a quantidade media abastecida por ele
durante o primeiro semestre de 2013 deve se ordenar da maior para a menor media


select f.nome , avg(a.qtd_abastecida) from funcionario f join abastecimento a
using (id_funcionario) where a.data_abastecimento between '2013-01-01 00:00:00' and '2013-06-30 23:59:59' group by 1 order by 2 desc;


--- com extract ---

select f.nome , avg(a.qtd_abastecida) from funcionario f join abastecimento a
using (id_funcionario) where extract (month from a.data_abastecimento) between 1 and 6 and extract (year from a.data_abastecimento) = 2013 group by 1 order by 2 desc;


4 - selecionar o nome do funcionário que abasteceu mais vezes

select f.nome from abastecimento a join funcionario f using (id_funcionario) group by 1 order by count (a.id_abastecimento) desc limit 1;


5 selecionar as placas dos veículos que não abasteceu no ano de 2014

select placa from veiculo where id_veiculo not in (select id_veiculo from abastecimento where data_abastecimento between '2014-01-01 00:00:00' and '2014-12-31 23:59:59')


-- com extract --

select placa from veiculo
where id_veiculo not in
(select id_veiculo from abastecimento
 where extract (year from data_abastecimento) = 2014);


6 selecionar o nome do cliente e valor a ser pago pelo mesmo
no mes de abril de 2014


 select c.nome, sum (valor)
 from
 veiculo v join abastecimento a using (id_veiculo)
 join cliente c using (id_cliente)
 join valor_abastecimento using (id_abastecimento)
 where a.data_abastecimento between '2014-01-01 00:00:00' and '2014-04-30 23:59:59' group by 1;



7 selecionar o nome do combustível e qual o valor vendido de cada um


select c.tipo, sum(va.valor)
from combustivel c join abastecimento a using (id_combustivel) join valor_abastecimento va using (id_abastecimento) group by 1;









Nenhum comentário:

Postar um comentário