Boa tarde! Para este desafio eu encontrei 2 soluções, a primeira sendo pelo nome dos produtos filtrados e a segunda usando a subconsulta. No primeiro caso eu rodei o comando:
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;
Para idendificar quais os nomes dos produtos em questão, e com base no resultado rodei o comando:
SELECT DISTINCT SABOR FROM TABELA_DE_PRODUTOS
WHERE NOME_DO_PRODUTO IN
('Clean - 470 ml - Laranja','Pedacos de Frutas - 350 ml - Maca',
'Linha Refrescante - 1,5 Litros - Manga','Frescor do Verao - 350 ml - Manga','Light - 350 ml - Melancia')
No segundo cenário eu utilizei como base a subconsulta de código do produto no comando abaixo após remover o order by:
SELECT DISTINCT SABOR FROM TABELA_DE_PRODUTOS
WHERE CODIGO_DO_PRODUTO IN
(SELECT INF.CODIGO_DO_PRODUTO 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)