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

10 Desafio: produtos mais vendidos

Olá

Minha resposta:

SELECT INF.CODIGO_DO_PRODUTO, TB.NOME_DO_PRODUTO, INF.QUANTIDADE, SUM(QUANTIDADE) AS TOTAL FROM ITENS_NOTAS_FISCAIS INF
INNER JOIN TABELA_DE_PRODUTOS TB
ON INF.CODIGO_DO_PRODUTO = TB.CODIGO_DO_PRODUTO
GROUP BY INF.CODIGO_DO_PRODUTO, TB.NOME_DO_PRODUTO, INF.QUANTIDADE
ORDER BY SUM(QUANTIDADE) DESC;

Resposta do Instrutor:

SELECT CODIGO_DO_PRODUTO, SUM(QUANTIDADE) AS QUANTIDADE FROM ITENS_NOTAS_FISCAIS 
GROUP BY CODIGO_DO_PRODUTO ORDER BY SUM(QUANTIDADE) DESC;

Poderia me auxiliar no que eu poderia ter errado na minha resposta ? Eu fiz a consulta onde ele pudesse juntas as 2 tabelas para que eu saiba qual o nome do produto que mais vendeu (código e nome do produto), porem parece que os resultados da consulta deu diferente no total. Poderia validar por favor ?

Obrigada

1 resposta
solução!

Olá, Jessica, tudo bem?

O que aconteceu é que, ao incluir 'INF.QUANTIDADE' no agrupamento, você está criando grupos para cada combinação única de 'CODIGO_DO_PRODUTO', 'NOME_DO_PRODUTO' e 'QUANTIDADE'. Isso significa que, se o mesmo produto foi vendido em quantidades diferentes em diferentes pedidos, cada uma dessas vendas será considerada um grupo separado.

Por outro lado, a consulta do instrutor, agrupando apenas por 'CODIGO_DO_PRODUTO', considera todas as vendas de um mesmo produto como parte do mesmo grupo, independentemente da quantidade vendida em cada pedido. Por isso, a soma total (SUM) de 'QUANTIDADE' na consulta do instrutor será maior do que na sua, já que ele está somando todas as vendas de cada produto.

Fiz a modificação no seu código, e removi 'INF.QUANTIDADE' do GROUP BY. Dessa forma, todas as vendas de cada produto serão somadas, independentemente da quantidade vendida em cada pedido, e você também terá o nome do produto na sua consulta.

captura de tela da consulta da aluna

Espero ter ajudado e fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!