Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte 1:
1)
drop table venda;
drop table nota_produto;
drop table produto;
drop table nota;
drop table cliente;
2)
insert into cliente values (1, 'Cliente 1', 'Araranguá', 'SC', 'Endereco 1', '1976-10-5');
insert into cliente values (2, 'Cliente 2', 'Arroio do Silva', 'SC', 'Endereco 2', '1980-09-11');
insert into cliente values (3, 'Cliente 3', 'Araranguá', 'SC', 'Endereco 3', '1952-01-29');
insert into cliente values (4, 'Cliente 4', 'Turvo', 'SC', 'Endereco 4', '1980-03-21');
commit;
update venda
set desconto = 1.00,
data_pagto = '2015-10-28'
where num_nota = 2 and data_vencto = '2015-11-02';
update venda
set multa_juro = 1.20,
data_pagto = '2015-11-15'
where num_nota = 3 and data_vencto = '2015-11-02';
3)
select cli.cod_cliente, cli.nome, extract(month from data) as mes, extract(year from data) as ano,
sum(vda.valor)
from cliente as cli, nota as nt, venda as vda
where cli.cod_cliente = nt.cod_cliente and
nt.num_nota = vda.num_nota
group by cli.cod_cliente, nome, mes, ano
order by nome, ano, mes;
-- 1a solução
-- 2a solução
1)
2)
a)
select livro.titulo, emprestimo.data_emprestimo, emprestimo.data_devolução from livro, exemplar,
emprestimo
where livro.isbn = exemplar.isbn and
exemplar.cod_exemplar = emprestimo.cod_exemplar and
emprestimo.cod_associado = 1 and
emprestimo.data_emprestimo between '2017-03-01' and '2017-04-30'
order by emprestimo.data_emprestimo desc;
b)
select * from livro
where titilo like ‘%Banco de Dados’;
3)
Ou
select * from (
select nome, avg(valor) as valor_medio
from fornecedor as f inner join fornecedor_produto as fpr
on f.cod_fornecedor = fpr.cod_fornecedor
group by nome) as res
where valor_medio > 100
4)
a)
b)
ou
5)
1)
select c.codigo, nome, descricao
from colaborador as c
inner join perfil as p on c.cod_perfil = p.codigo;
2)
select col.*
from colaborador as col
inner join perfil as p on col.cod_perfil = p.codigo
and p.descricao = 'Desenvolvedor';
3)
select distinct col.codigo, col.nome
from projeto as pr
inner join atividade as at on pr.codigo = at.cod_projeto
inner join atividade_colaborador as ac on ac.cod_atividade = at.codigo
inner join colaborador as col on col.codigo = ac.cod_colaborador
where pr.codigo = 1;
4)
select p.codigo, p.descricao, count(*)
from projeto as p
inner join
(select distinct pr.codigo as cod_projeto, col.codigo, col.nome
from projeto as pr
inner join atividade as at on pr.codigo = at.cod_projeto
inner join atividade_colaborador as ac on ac.cod_atividade = at.codigo
inner join colaborador as col on col.codigo = ac.cod_colaborador) as a
on p.codigo = a.cod_projeto
group by p.codigo, p.descricao
ou
5)
select p.codigo, p.descricao, sum(at.qtde_hora_prevista), sum(at.qtde_hora_total)
from atividade as at
inner join projeto as p on at.cod_projeto = p.codigo
group by p.codigo, p.descricao
having sum(qtde_hora_total) > sum(qtde_hora_prevista);
6)
select pr.codigo, pr.descricao,
sum(at.qtde_hora_prevista * ac.perc_colaboracao * per.custo_hora) as custo_previsto,
sum(at.qtde_hora_total * ac.perc_colaboracao * per.custo_hora) as custo_real
from atividade as at
inner join atividade_colaborador as ac on ac.cod_atividade = at.codigo
inner join colaborador as col on col.codigo = ac.cod_colaborador
inner join perfil as per on per.codigo = col.cod_perfil
inner join projeto as pr on pr.codigo = at.cod_projeto
group by pr.codigo, pr.descricao
having sum(at.qtde_hora_total * ac.perc_colaboracao * per.custo_hora) >
(sum(at.qtde_hora_prevista * ac.perc_colaboracao * per.custo_hora) * 1.15);
ou
select * from (
select pr.codigo, pr.descricao,
sum(at.qtde_hora_prevista * ac.perc_colaboracao * per.custo_hora) as custo_previsto,
sum(at.qtde_hora_total * ac.perc_colaboracao * per.custo_hora) as custo_real
from atividade as at
inner join atividade_colaborador as ac on ac.cod_atividade = at.codigo
inner join colaborador as col on col.codigo = ac.cod_colaborador
inner join perfil as per on per.codigo = col.cod_perfil
inner join projeto as pr on pr.codigo = at.cod_projeto
group by pr.codigo, pr.descricao) as res_final
where custo_real > (custo_previsto * 1.15);
7)
select cat.codigo, cat.descricao,
avg(qtde_hora_prevista) as mediaHoraPrevista,
avg(qtde_hora_total) as mediaHoraTotal
from atividade as at
inner join categoria as cat on cat.codigo = at.cod_categoria
group by cat.codigo, cat.descricao;
8)