mirror of
https://github.com/IdalecioSch/dbTrabai.git
synced 2026-07-27 16:26:04 -03:00
1.2 KiB
1.2 KiB
5.5 — Views
View 1 — 3 clientes com maior receita
Considera apenas encomendas com situacao = 'Fechada'
CREATE OR REPLACE VIEW viww_top3_clientes_receita AS
SELECT
c.id,
c.nome,
c.cpf,
COUNT(e.id) AS total_encomendas,
SUM(e.valor) AS receita_total
FROM cliente c
JOIN encomenda e ON e.cliente_id = c.id
WHERE e.situacao = 'Fechada'
GROUP BY c.id, c.nome, c.cpf
ORDER BY receita_total DESC
LIMIT 3;
SELECT * FROM viww_top3_clientes_receita;
View 2 — Valor arrecadado por placa
Soma o valor gerado por cada tipo de placa nas encomendas fechadas.
O valor por item é calculado como material.custo + LENGTH(frase) × material.valor_letra.
CREATE VIEW view_valor_por_placa AS
SELECT
p.id AS placa_id,
p.largura || ' x ' || p.altura || ' cm' AS dimensao,
m.descricao AS material,
COUNT(i.id) AS total_vendas,
ROUND(
SUM(m.custo + LENGTH(i.frase) * m.valor_letra), 2
) AS valor_arrecadado
FROM placa p
JOIN item i ON i.placa_id = p.id
JOIN encomenda e ON e.id = i.encomenda_id
JOIN material m ON m.id = p.material_id
WHERE e.situacao = 'Fechada'
GROUP BY p.id, p.largura, p.altura, m.descricao
ORDER BY valor_arrecadado DESC;
SELECT * FROM view_valor_por_placa;