Olá pessoal tudo bem?
É o seguinte estou tentando fazer um script em SQL no Oracle que retorna o "código, nome, valor total vendido" do produto mais vendido em um determinado período.
Fiz o script, mas ele tá retornando como resultado todos os produtos vendido no período, e o que eu gostaria era que ele apenas me retorna o produto mais vendido. Eu coloquei a função agregada MAX(...), mas mesmo assim é retornado todos os produtos vendido no período, segue meu script.(OBS: ele tá funcionando, o problema é que não está retornando apenas o produto mais vendido).
SELECT SUB.SUB_CODIGO, SUB.SUB_NOME, MAX(TESTE.TOTAL) FROM SUBSTANCIA SUB
INNER JOIN
(SELECT ITENS.SUB_CODIGO, SUM(ITENS.ITEM_NOT_SAI_QTDE * ITENS.ITEM_NOT_SAI_PRECO) AS TOTAL
FROM ITENS_NOTA_SAIDA ITENS INNER JOIN NOTA_SAIDA NOTA ON
NOTA.NOT_SAI_CODIGO = ITENS.NOT_SAI_CODIGO
WHERE NOT_SAI_DATA BETWEEN '17/03/2017' AND '17/03/2017'
GROUP BY ITENS.SUB_CODIGO
) TESTE
ON (SUB.SUB_CODIGO = TESTE.SUB_CODIGO)
GROUP BY SUB.SUB_CODIGO, SUB.SUB_NOME;
Em anexo tá o resultado que esta retornando pra vocês terem uma ideia do que eu to falando.
Se alguém poder me ajudar eu agradeço.
teste.pdf