-- questao 01 - inserts
select * from pessoas
alter table pessoas add salario numeric(10,2);
insert into pessoas values (4,'Paulo')
insert into pessoas values (5,'Pedro',null)
insert into pessoas (codigo,salario,nome) values (7,'Maria',null)

-- questao 02 - comando update
update alugueis set valor = valor*1.05;
update alugueis set valor = valor + (valor*0.05)
select * from alugueis;

-- questao 03 - comando delete
select * from recebimentos;
delete from recebimentos where aluguel=2 and (pagamento is null)

-- questao 04. FUC que mostra o nome do prédio, a porcentagem e o nome dos proprietários de cada apartamento.

select * from apartamentos;
select * from proprietarios

select predios.descricao, apartamento_numero, pessoas.nome, porcentagem
from predios, apartamentos, proprietarios, pessoas
where predios.codigo = apartamentos.predio and
           apartamentos.numero = proprietarios.apartamento_numero and
           apartamentos.predio = proprietarios.apartamento_predio and
           proprietarios.pessoa = pessoas.codigo
order by predios.descricao, apartamentos.numero, porcentagem, pessoas.nome;

-- questao 05. FUC predio, apartamento, total recebido
select p.descricao, a.numero, sum(r.valor) as total_recebido
from predios p, apartamentos a, alugueis al, recebimentos r
where p.codigo = a.predio and
	  a.numero = al.apartamento_numero and
      a.predio = al.apartamento_predio and
      al.numero = r.aluguel and
      (r.pagamento is  not null)
group by p.descricao, a.numero

update recebimentos set pagamento='2018-06-12' where codigo=2
select * from recebimentos
select * from alugueis

-- questao 06 - 6.	FUC que mostra o nome da pessoa e os contratos de alugueis que possui.

select pessoas.nome, alugueis.numero, alugueis.valor
from pessoas, alugueis
where pessoas.codigo = alugueis.pessoa

select * from alugueis

-- questao 07 FUC que mostra por contrato os valores de alugueis a receber.

select alugueis.numero, sum(r.valor)
from alugueis, recebimentos r
where alugueis.numero = r.aluguel and
          (pagamento is null)
group by alugueis.numero

select * from recebimentos

-- questao 08. FUC que mostra para cada proprietário o valor de aluguel que tem a receber.

select pessoas.nome, sum(r.valor*p.porcentagem/100)
from pessoas, proprietarios p, apartamentos a, alugueis, recebimentos r
where pessoas.codigo = p.pessoa and
           p.apartamento_numero = a.numero and
           p.apartamento_predio = a.predio and
           a.numero = alugueis.apartamento_numero and
           a.predio = alugueis.apartamento_predio and
           alugueis.numero = r.aluguel and
          (pagamento is null)
group by pessoas.nome
