Você está na página 1de 2

DCC060 Banco de Dados

prof. Victor Strele

Atividade em Laboratrio

Responda s questes abaixo desenvolvendo consultas SQL no


PostgreSQL. Envie um arquivo com as respostas atravs de um link no
Moodle.
1. Quais so os produtos (selecione o nmero e nome comercial) que possuem
quantidade maior que 3?
select numero, nome_comercial
from stroele.produto
where quantidade > 3;

2. Selecione o nmero, nome comercial e preo total dos produtos (preo total =
quantidade * preo unitrio). Defina um nome especfico
especfico para a coluna preo
total.
select numero, nome_comercial, quantidade*preco_unitario
from stroele.produto

3. Selecione o nome de todos os clientes que compraram aps o dia 10/01/2014


select nome_cliente
from stroele.venda
where data >= '10/01/2014'

4. Selecione o nmero do medicamento, a quantidade vendida e o imposto quando o


valor do imposto for diferente de nulo.
select numero_med, quantidade, imposto
from stroele.medicamento_receita_venda
where imposto is not null

5. Selecione o CRM, nome do mdico,


mdico, nmero da receita, nmero e nome do
medicamento receitado
select rm.crm, rm.nome_medico, rm.numero as numero_receita, m.numero as
numero_medicamento, p.nome_comercial
from stroele.medicamento m
inner join stroele.produto p on p.numero = m.numero
inner join stroele.medicamento_receita_venda mrv on (m.numero =
mrv.numero_med)
inner join stroele.receita_medica rm on (rm.crm = mrv.crm and rm.numero =
mrv.numero_receita)

6. Selecione o nmero, nome e o imposto de TODOS os medicamentos e aponte


aqueles que possuem
uem imposto maior que zero
select m.numero as numero_medicamento, p.nome_comercial, mrv.imposto
from stroele.medicamento_receita_venda mrv
right join stroele.produto p on (mrv.numero_med = p.numero and mrv.imposto
> 0)
inner join stroele.medicamento m on
o (p.numero = m.numero)

7. Somar o valor unitrio vezes a quantidade de produtos do tipo perfumaria


vendidos por ano.
select (extract (year from v.data)), sum(pp.preco_unitario*pv.quantidade)
from stroele.venda v
inner join stroele.perfumaria_venda pv on pv.numero_nota = v.numero_nota
inner join stroele.perfumaria p on p.numero = pv.numero_perfume
inner join stroele.produto pp on pp.numero = p.numero
group by (extract (year from v.data));

8. Selecione o nome dos remdios vendidos com receita mdica apenas uma
um vez.
DICA: use group by e having.
select p.nome_comercial, count(*)
from stroele.medicamento m
inner join stroele.produto p on p.numero = m.numero
inner join stroele.medicamento_receita_venda mrv on (m.numero =
mrv.numero_med)
inner join stroele.receita_medica
stroele.receita_medica rm on (rm.crm = mrv.crm and rm.numero =
mrv.numero_receita)
group by p.nome_comercial
having count(*) > 1

Você também pode gostar