1
resposta

[Dúvida] inner join

Olá, fiquei com uma dúvida no inner join que o professor fez

SELECT SUM(INF.QUANTIDADE *  INF.[PREÇO]) AS TOTAL_VENDAS
FROM [NOTAS FISCAIS] NF
INNER JOIN [ITENS NOTAS FISCAIS] INF
ON NF.NUMERO = INF.NUMERO
WHERE NF.CPF = '1471156710'

Qual o motivo de fazer a soma da multiplicação e não multiplicar as somas separadas como no código abaixo?

SELECT SUM(INF.QUANTIDADE ) * SUM(INF.[PREÇO]) AS TOTAL_VENDAS
FROM [NOTAS FISCAIS] NF
INNER JOIN [ITENS NOTAS FISCAIS] INF
ON NF.NUMERO = INF.NUMERO
WHERE NF.CPF = '1471156710'
1 resposta

Oii, Maitê! Tudo bem?

Boa pergunta!

No código, ao usar SUM(INF.QUANTIDADE * INF.[PREÇO]) ao invés de SUM(INF.QUANTIDADE) * SUM(INF.[PREÇO]) é devido a como queremos calcular o total das vendas. Ao multiplicarmos primeiro a quantidade pelo preço de cada item antes de somar, estamos obtendo o total correto de cada venda individual e, depois, somando esses totais para obter o total geral.

E se multiplicarmos as somas das quantidades pelo preço total, como no segundo exemplo, isso não refletiria corretamente o total das vendas, porque essa operação assume que todos os itens têm o mesmo preço, o que geralmente não é o caso. O que retorna um resultado diferente e/ou incorreto.

Em resumo, a abordagem de multiplicar primeiro e depois somar garante que cada item seja avaliado corretamente pelo seu preço, resulta no total de vendas correto.

Espero ter ajudado. Qualquer dúvida, compartilhe conosco para podermos te auxiliar.

Bons estudos, Maitê!