1
resposta

RESOLUÇÃO DO EXERCICIO.

Ela nos dá os produtos cuja soma das vendas são maiores que 394000.

Levando isso em consideração, liste os sabores destes produtos que são selecionados nesta consulta.


SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, SUM(INF.QUANTIDADE) AS QUANTIDADE FROM ITENS_NOTAS_FISCAIS  INF
INNER JOIN TABELA_DE_PRODUTOS TP 
ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO HAVING SUM(INF.QUANTIDADE) > 394000 
ORDER BY SUM(INF.QUANTIDADE) DESC;

RESULTADO.

SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR AS SABOR_PRODUTO , SUM(INF.QUANTIDADE) AS QUANTIDADE  
FROM ITENS_NOTAS_FISCAIS  INF
INNER JOIN TABELA_DE_PRODUTOS TP 
ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR HAVING SUM(INF.QUANTIDADE) > 394000 
ORDER BY SUM(INF.QUANTIDADE) DESC;

OUTRA FORMA.

SELECT *
FROM (SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR AS SABOR_PRODUTO, SUM(INF.QUANTIDADE) AS QUANTIDADE
      FROM ITENS_NOTAS_FISCAIS INF
      INNER JOIN TABELA_DE_PRODUTOS TP 
      ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
      GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR) AS PRODUTOS_AGRUPADOS
      WHERE QUANTIDADE > 394000
      ORDER BY QUANTIDADE DESC;
1 resposta

eI, Leandro! Como vai?

Seu raciocínio tá bem montado: você usou o GROUP BY direitinho pra somar as quantidades por produto e ainda incluiu o campo TP.SABOR para listar os sabores. A versão com sub consulta também ficou ótima, principalmente se quiser reaproveitar o agrupamento mais tarde.

Uma ideia complementar, seria usar o WITH para criar uma CTE (Common Table Expression) e deixar a consulta mais fácil de entender:


WITH PRODUTOS_AGRUPADOS AS (
  SELECT INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR AS SABOR_PRODUTO, 
         SUM(INF.QUANTIDADE) AS QUANTIDADE
  FROM ITENS_NOTAS_FISCAIS INF
  INNER JOIN TABELA_DE_PRODUTOS TP 
    ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
  GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO, TP.SABOR
)
SELECT * 
FROM PRODUTOS_AGRUPADOS
WHERE QUANTIDADE > 394000
ORDER BY QUANTIDADE DESC;

Esse código cria uma consulta temporária nomeada e facilita futuras manutenções no SQL, adapte-a ao seu código para testar.

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