Você está na página 1de 6

Banco de Dados II

Prof. Jorge Viana Doria Junior, M.Sc.


Atividade Prtica Supervisionada

1. Viso Geral da Atividade

De acordo com o modelo de dados da rea de vendas abaixo, desenvolver o script para criao do
banco de dados e a seguinte lista de exerccios: (4,0 pontos)

1) Nome e endereo dos Clientes que nasceram no Rio de Janeiro.


select Nome_Cliente, endereco
from cliente
where UF='RJ'

2) Nome e endereo dos Clientes que possuem endereo.


select nome_cliente, endereco

from cliente
where endereco is not null
3) Listar os vendedores com salrio fixo acima de R$ 250.00.
select *
from vendedor
where salario_fixo > 250

4) Consultar o dobro do valor dos salrios dos vendedores.


select nome_vendedor, salario_fixo * 2 as dobro
from vendedor
5) Listar os produtos com unidade = UN e valor > R$3.00.
select *
from produto
where unidade = 'un' and val_unit > 3

6) Listar todos os pedidos que no tenham prazo de en trega igual a 15 dias ordenados
pelo cdigo do cliente.

select *
from pedido
where prazo_entrega <> 15
order by codigo_cliente

7) Listar os produtos que tenham o valor unitrio na faixa de R$ 3,00 at R$ 12,00.


select *
from produto
where val_unit between 3 and 12

8) Listar todos os produtos que tenham o seu nome comeando por Q.


select *
from produto
where descricao like "Q%"

9) Listar cliente(s) sem inscrio estadual (IE) ordenados pelo nome.


select *
from cliente
where IE is null
order by nome_cliente

10) Mostrar o novo salrio fixo dos vendedores, de faixa de comisso 'A', c alculado com
base no reajuste de 75% a crescido de R$ 120,00 de bonificao. Ordenar pelo nome
do vendedor.
select nome_vendedor,(salario_fixo * 1.75 +120) as novosalario
from vendedor
where faixa_comissao in ('A')
order by nome_vendedor

11) Mostrar o menor e o maior salrio dos vendedores.


select min(salario_fixo) as menor, max(salario_fixo) as maior
from vendedor

12) Listar a quantidade de itens (produtos) que cada pedido contm.


select num_pedido, count(*) as qtd_produto
from item_do_pedido
group by num_pedido
13) Listar os vendedores cujos salrio s so maiores que a mdia dos salrios dos
vendedores?
select *
from vendedor
where salario_fixo > (select avg (salario_fixo) from vendedor)

14) Listar os clientes que realizaram pedidos (caso A) e os que no realizaram (caso B).
Os nmeros dos pedidos dever o ser listados no caso A.
select c.nome_cliente, P.num_pedido
from cliente c left join pedido p using (codigo_cliente)

15) Listar os nomes dos clientes e as respectivas quantidades de pedidos realizados.

select c.nome_cliente, count(*) as qte_pedidos


from cliente c join pedido p on c.codigo_cliente = p.codigo_cliente

16) Listar os nomes dos vendedores e as respectivas quantidades de pedidos atendidos.


select v.nome_vendedor, count(*) as qte_pedido
from vendedor v join pedido p using (codigo_vendedor)
group by v.nome_vendedor

17) Listar as descries dos produtos e as respectivas quantidades totais pedidas.


select p.descricao, sum(ip.quantidade) as quantidadetotal
from produto p join item_do_pedido ip using (codigo_produto)
group by p.descricao

18) Listar os nomes dos clientes e os nomes dos vendedores que atenderam pedidos
realizados pelos respectivos clientes.

select distinct c.nome_cliente, v.nome_vendedor


from cliente c join pedido p using (codigo_cliente) join vendedor v using(codigo_vendedor)

19)

20)
21)

RESPOSTA DA QUESTO 19
select nome_vendedor
from vendedor
where salario_fixo>250

RESPOSTA DA QUESTO 20
select c.nome_cliente, p.num_pedido
from cliente c join pedido p using (codigo_cliente)
where c.uf = 'RJ'

RESPOSTA DA QUESTO 21
(select nome_cliente as nome from cliente)
union
(select nome_vendedor as nome from vendedor)

22) Listar os pedidos que tm mais do que 2 itens de produtos.


select num_pedido, count(*) as qte
from item_do_pedido
group by num_pedido
having qte>2;

23) Listar o nome dos clientes, bem como os nmeros e os prazos de entrega dos
respectivos pedidos.
select c.nome_cliente, p.num_pedido,p.prazo_entrega
from cliente c join pedido p on p.codigo_cliente=c.codigo_cliente;

24) Listar o nome dos vendedores que atenderam pedidos e o s nmeros dos respectivos
pedidos. Listar tambm os vendedores que no atenderam.
select v.nome_vendedor, p.num_pedido
from vendedor v left join pedido p
using(codigo_vendedor);
25) Quais os nomes dos clientes que fizeram 02 ou mais pedidos com o vendedor Luis
Pedro?
select c.nome_cliente, count(*) as qte_pedido
from cliente c join pedido p using(codigo_cliente) join vendedor v using(codigo_vendedor)
where v.nome_vendedor='Luis pedro'
group by c.nome_cliente
having qte_pedido>2;

26) Listar os produtos pedido s e os que no foram pedidos. Listar os nmeros dos
pedidos (num_pedido) quando existir.
select p.descricao, ip.num_pedido
from Item_do_Pedido ip right join produto p
using (codigo_produto);

27) Listar todos os pedidos que no tenham prazo de entrega igual a 15 dias ordenados
pelo cdigo do cliente (USAR SUBCONSULTA).
select *
from pedido
where num_pedido not in (select num_pedido
from item_do_pedido
where prazo_entrega=15)
order by codigo_cliente;

28) Listar o nome dos produtos que no foram pedidos.


select *
from produto
where codigo_produto not in (select distinct codigo_produto
from item_do_pedido);

29) Listar os nomes dos clientes que no fizeram pedidos.


select *
from cliente
where codigo_cliente not in (select codigo_cliente
from item_do_pedido);

30) Apresentar os nomes vendedores (ordenados) que emitiram pedidos com prazos de
entrega superiores a 10 dias e tenham salrios fixos iguais ou superiores a R$ 200,00.
select v.nome_vendedor
from vendedor v join pedido p on v.codigo_vendedor=p.codigo_vendedor
where v.salario_fixo >= 200 and p.prazo_entrega>10
order by v.nome_vendedor;
31) Listar os vendedores que venderam produtos em quantidade superior a 10 (um produto
pode estar em vrios pedidos atendidos por um nico vendedor). Listar o nome do
vendedor, o nome do produto e a quantidade total de cada produto.
select v.nome_vendedor, pr.descricao, sum(quantidade) as soma_produto
from vendedor v join pedido p
using (codigo_vendedor)
join item_do_pedido ip using (num_pedido)
join produto pr using (codigo_produto)
group by v.nome_vendedor, pr.descricao
having soma_produto > 10;

32) Mostrar o menor e o maior salrio dos vendedores.


select min(salario_fixo), min(salario_fixo)
from vendedor;

33) Listar os pedidos cuja quantidade de itens (produtos) seja superior a 2.


select num_pedido, count(*) as qte_produto
from item_do_pedido
group by num_pedido
having qte_produto>2;

34) Quantos clientes da cidade do Rio de janeiro e de So Paulo tiveram seus pedidos
tirados com o vendedor Joo Carlos?

select count(*) as qte_cliente


from vendedor v join pedido p
using (codigo_cliente)
where c.cidade in ('Rio', 'So Paulo' )
and
v.nome_vendedor='Joo Carlos';

35) Que produtos participam de qualquer pedido cuja quantidade seja 10? Listar os nomes
dos produtos. (USAR SUBCONSULTA).
select descricao
from produto
where codigo_produto in (select distinct codigo_produto
from item_do_pedido
where quantidade = 10);

2. Critrios de Avaliao

As tarefas totalizam 40% da AV2.

3. Quanto Entrega do Trabalho


O dia da entrega do trabalho 15/06/2016. O aluno dever entregar somente pelo AVA, para
avaliao do professor. Utilize a tarefa ATIVIDADE PRTICA SUPERVISIONADA para upload do
arquivo *.DOCX contendo as resolues.

Você também pode gostar