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