quarta-feira, 5 de novembro de 2014
Banco de Dados 08 Out
exercicio 1
-- 3) selecionar a placa dos carros e quantidade abastecida dos abastecimento dos funcionarios erinaldo soares
-- select v.placa,a.qtd_abastecida from veiculo v, funcionario f, abastecimento a
-- where v.id_veiculo = a.id_veiculo
-- and f.id_funcionario=a.id_funcionario
-- and upper(f.nome)like 'ERINALDO SOARES';
-- 1) selecione todos os abastecimento ordenado do maior para o emnor
-- select * from abastecimento order by qtd_abastecida desc
-- 2) selecione os clientes que tem menos de 20 anos e mais que 17
-- select nome from cliente where idade between 18 and 19;
-- 4)selecionar o nome dos funcionarios e a data do abastecimento dos abastecimento de gasolina
-- select f.nome, a.data_abastecimento from funcionario f, abastecimento a,combustivel c
-- where f.id_funcionario = a.id_funcionario
-- and a.id_combustivel = c.id_combustivel
-- and upper(c.tipo) ='GASOLINA';
-- 5)selecionar a idade do cliente eo nomes dos cliente que tem celta
-- select c.idade,c.nome from veiculo v,cliente c
-- where v.id_cliente = c.id_cliente
-- and upper(v.descricao)like 'CELTA%'
-- 6)selecionar a quantidade de cada abastecimento do ano de 2013 o nome do funcionario que abasteceu eo combustivel abastecido
-- select a.qtd_abastecida,f.nome,c.tipo from abastecimento a,funcionario f, combustivel c
-- where a.id_funcionario = f.id_funcionario
-- and a.id_combustivel = c.id_combustivel
-- and data_abastecimento between '01-01-2013' and '31-12-2013'
-- 7) selecionar todos os abastecimento de álcool
-- select * from abastecimento a, combustivel c
-- where a.id_combustivel = c.id_combustivel
-- and upper(c.tipo) = 'ÁLCOOL'
-- 8)selecionar os abastecimento de quantidade maior que 10 e menor que 25
-- select * from abastecimento
-- where qtd_abastecida >10
-- and qtd_abastecida <25
-- 9)selecionar a placa dos veiculos dos cliente do sexo masculino
-- select v.placa from veiculo v , cliente c
-- where v.id_cliente = c.id_cliente
-- and upper(c.sexo) = 'M'
-- 10) selecionar o nome dos cliente nome do funcionario a placa do veiculo o combustivel abastecido dos abastecimento dos anos de 2000 a 2013
-- dos clientes com mais de 18 anos
-- select c.nome as cliente ,f.nome as funcionario ,v.placa,cb.tipo from cliente c, funcionario f, veiculo v, combustivel cb,abastecimento a
-- where a.id_funcionario = f.id_funcionario
-- and a.id_veiculo = v.id_veiculo
-- and a.id_combustivel = cb.id_combustivel
-- and v.id_cliente = c.id_cliente
-- and data_abastecimento between '2000-01-01' and '2013-12-31'
-- and c.idade > 18
--------------------------------------------///////--------------------------------------------------------------------------------
-- 1) selecione o nome dos cliente que começa com a letra 'r'
-- select c.nome from cliente c where upper(c.nome)like 'R%'
-- 2)selecionar o nome do cliente o nome do funcionario a quantidade abastecida ordenado pelo nome do cliente onde os abastecimento ocorreram
-- entre o mes de abril e setembro de 2014
-- select c.nome as cliente ,f.nome as funcionario , a.qtd_abastecida
-- from cliente c, funcionario f, abastecimento a,veiculo v
-- where c.id_cliente = v.id_cliente
-- and v.id_veiculo = a.id_veiculo
-- and f.id_funcionario = a.id_funcionario
-- and dselect c.nome as cliente,f.nome as funcionario,a.qtd_abastecida from cliente c, funcionario f, abastecimento a,veiculo v
-- 3) selecionar a data dos abastecimento onde o nome do funcionario termine com silva
-- select a.data_abastecimento from abastecimento a, funcionario f
-- where a.id_funcionario = f.id_funcionario
-- and upper(f.nome) like '%SILVA'
-- 4)selicionar o nomes dos funcionarios que não realizaram abastecimento
-- select nome from funcionario
-- where id_funcionario not in (select id_funcionario from abastecimento)
-- 5)selecionar a placa dos carros que não abasteceram
-- select placa from veiculo
-- where id_veiculo not in (select id_veiculo from abastecimento)
-- 06)selecionar o nome dos cliente donos dos carros de id(1,3,6)
-- select c.nome from cliente c , veiculo v
-- where v.id_cliente = c.id_cliente
-- and v.id_veiculo in (1,4,6)
-- 7)selecionar a placa dos carros e o tipo de combustivel abastecido que no tipo do combustivel tem a letra 'A'
-- select v.placa,c.tipo
-- from veiculo v, combustivel c, abastecimento a
-- where a.id_veiculo = v.id_veiculo
-- and a.id_combustivel = c.id_combustivel
-- and upper(c.tipo) like '%A%'
--8 )selecionar o nome dos funcionarios a placa dos carros a quantidade a abastecida o tipo do combustivel dos abastecimento que não foram de alcool
-- select f.nome as funcionario,v.placa,a.qtd_abastecida,cb.tipo
-- from funcionario f, veiculo v, abastecimento a, combustivel cb
-- where a.id_funcionario = f.id_funcionario
-- and a.id_veiculo = v.id_veiculo
-- and a.id_combustivel = cb.id_combustivel
-- and cb.tipo != 'Álcool'
--
Banco de Dados
-EXERCÍCIO
1- Selecione os anos e a quantidade de abastecimentos, dos anos que tiveram mais de 1 abastecimento
select extract (year from data_abastecimento), count (id_abastecimento)
from abastecimento group by 1 having count(id_abastecimento) >1;
2- Selecione os nomes dos funcionários que realizaram mais de 2 abastecimentos
select nome from funcionario join abastecimento using(id_funcionario)
group by 1 having count(id_funcionario)> 2;
4- Selecione os combustíveis que foram abastecidos mais de 2 vezes
select tipo from abastecimento join combustivel using(id_combustivel) group by 1 having count(id_combustivel)> 2;
5- Selecione os anos, a quantidade abastecida, o valor abastecido, a quantidade de abastecimentos dos anos com faturamento superior as 120 reais
select extract (year from data_abastecimento)as ano,
sum(qtd_abastecida) as qtd_abastecida,
sum(valor) as faturamento, count (id_abastecimento) as quantidade_de_abastecimentos
from abastecimento join valor_abastecimento using (id_abastecimento) group by 1 having sum(valor)>120
7- Selecione os abastecimentos do Primeiro semestre, que o nome dos funcionários contenham a letra 'A', que os abastecimentos ocorreram nos anos de 2011,2010, 2009 e 2014, e que a placa dos carros contenham a letra 'C'
select a.* from funcionario f join abastecimento a using(id_funcionario)
join veiculo v using(id_veiculo) where v.placa like '%C%' and extract (year from a.data_abastecimento) in (2011,2010,2009,2014) and upper(f.nome) like '%A%'
and extract (month from a.data_abastecimento) between 1 and 6;
8-selecione os tipos de combustíveis que geraram mais de 200 reais de faturamento
select tipo from abastecimento join combustivel using(id_combustivel) join valor_abastecimento va
using(id_abastecimento) group by 1 having sum(va.valor)>200
1- Selecione os anos e a quantidade de abastecimentos, dos anos que tiveram mais de 1 abastecimento
select extract (year from data_abastecimento), count (id_abastecimento)
from abastecimento group by 1 having count(id_abastecimento) >1;
2- Selecione os nomes dos funcionários que realizaram mais de 2 abastecimentos
select nome from funcionario join abastecimento using(id_funcionario)
group by 1 having count(id_funcionario)> 2;
4- Selecione os combustíveis que foram abastecidos mais de 2 vezes
select tipo from abastecimento join combustivel using(id_combustivel) group by 1 having count(id_combustivel)> 2;
5- Selecione os anos, a quantidade abastecida, o valor abastecido, a quantidade de abastecimentos dos anos com faturamento superior as 120 reais
select extract (year from data_abastecimento)as ano,
sum(qtd_abastecida) as qtd_abastecida,
sum(valor) as faturamento, count (id_abastecimento) as quantidade_de_abastecimentos
from abastecimento join valor_abastecimento using (id_abastecimento) group by 1 having sum(valor)>120
7- Selecione os abastecimentos do Primeiro semestre, que o nome dos funcionários contenham a letra 'A', que os abastecimentos ocorreram nos anos de 2011,2010, 2009 e 2014, e que a placa dos carros contenham a letra 'C'
select a.* from funcionario f join abastecimento a using(id_funcionario)
join veiculo v using(id_veiculo) where v.placa like '%C%' and extract (year from a.data_abastecimento) in (2011,2010,2009,2014) and upper(f.nome) like '%A%'
and extract (month from a.data_abastecimento) between 1 and 6;
8-selecione os tipos de combustíveis que geraram mais de 200 reais de faturamento
select tipo from abastecimento join combustivel using(id_combustivel) join valor_abastecimento va
using(id_abastecimento) group by 1 having sum(va.valor)>200
Assinar:
Postagens (Atom)