Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre a questão 10

Resposta do professor:

SELECT p.idCliente, c.nome, SUM(ip.quantidade * ip.precounitario) as Valortotal
FROM clientes c
INNER JOIN pedidos p ON c.id = p.idcliente
INNER JOIN itensPedido ip ON p.id = ip.idpedido
GROUP BY p.idCliente
ORDER BY Valortotal DESC
LIMIT 1;

Pelo que eu percebi nas aulas, a coluna "precounitario" da tabela "itenspedidos" já representa o resultado do calculo (preço do produto * quantidade). Diante disso, por que foi necessário utilizar a multiplicação "SUM(ip.quantidade * ip.precounitario)" na consulta do professor?

Segue minha resposta:

SELECT c.nome, c.id as 'Id do cliente', sum(ip.'Total por pedido') as ' Valor Total por cliente'
FROM clientes c
JOIN pedidos p
on c.id = p.idcliente
JOIN (
SELECT idpedido, sum(precounitario) AS 'Total por pedido'
FROM itenspedidos
GROUP BY idpedido) as ip
on p.id = ip.idpedido
GROUP BY c.nome
ORDER BY sum(ip.'Total por pedido') DESC
LIMIT 1;

1 resposta
solução!

Olá! Como vai?

Na verdade, o precounitario na tabela itensPedido representa apenas o preço unitário do item, e não o total do item (preço unitário x quantidade).

A multiplicação SUM(ip.quantidade * ip.precounitario) é utilizada para calcular o valor total de cada pedido, somando o produto da quantidade pelo preço unitário de cada item dentro do pedido.

Na sua resposta, você criou uma subconsulta para calcular o Total por pedido, o que é uma abordagem interessante. No entanto, é importante garantir que a lógica de cálculo esteja de acordo com a estrutura dos dados que você tem.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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