1
resposta

Mão na massa: total de pedidos

SELECT c.nome,
SUM(ip.quantidade * ip.precounitario) AS ValorTotalPedidos
FROM clientes c
JOIN pedidos p ON c.id = p.idcliente
JOIN itenspedidos ip ON p.id = ip.idpedido
GROUP BY c.nome;

JOIN→ relacionando clientes , pedidos e itens solicitados

quantidade * precounitario→ calcular o valor de cada item

SUM()→ soma todos os itens comprados pelo cliente

GROUP BY c.nome→ totaliza por cliente

1 resposta

Oi, Moacir! Como vai?

Agradeço por compartilhar seu código SQL com a comunidade Alura.

Você organizou bem os JOIN entre clientes, pedidos e itenspedidos, alem de detalhar o uso do SUM() e do GROUP BY para chegar ao total de pedidos por cliente.

Uma dica interessante para o futuro e utilizar COALESCE() para evitar valores nulos no cálculo do total, principalmente se algum pedido não tiver itens associados. Veja este exemplo:


SELECT c.nome,
SUM(COALESCE(ip.quantidade * ip.precounitario, 0)) AS ValorTotalPedidos
FROM clientes c
JOIN pedidos p ON c.id = p.idcliente
LEFT JOIN itenspedidos ip ON p.id = ip.idpedido
GROUP BY c.nome;

Esse código garante que valores nulos sejam tratados como zero, evitando problemas no calculo do total.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!