4
respostas

DUVIDA EM OUTRA POSSIBILIDADE DE CODIGO

SELECT CODIGO_DO_PRODUTO, max(QUANTIDADE) AS RESPOSTA, count(QUANTIDADE) AS CONTAMENTO FROM itens_notas_fiscais where    CODIGO_DO_PRODUTO ='1101035'
having max(CONTAMENTO);

Olá pq esse código não consegue me dar a resposta correta??

4 respostas

Oii Victor, tudo bem?

Você esqueceu de passar como parâmetro no where a quantidade encontrada de itens de venda daquele produto, então sua consulta ficaria assim:

SELECT CODIGO_DO_PRODUTO, 
max(QUANTIDADE) AS RESPOSTA, 
count(QUANTIDADE) AS CONTAMENTO 
FROM itens_notas_fiscais 
where CODIGO_DO_PRODUTO ='1101035' and QUANTIDADE = '99'

Eu tirei o having, pois não irá fazer efeito algum sobre a sua consulta.

Espero ter ajudado. Qualquer coisa é só falar, beleza? :)

Olá Victor, tudo bem?

Para a seu query funcionar corretamente, você precisa adicionar na cláusula WHERE mais um filtro, que é o campo quantidade. Assim, o COUNT só levará em consideração as linhas onde o código do produto for igual a 1101035 e a quantidade for igual a 99.

A sua query após as alterações:

SELECT CODIGO_DO_PRODUTO, 
MAX(QUANTIDADE) AS RESPOSTA,
COUNT(QUANTIDADE) AS CONTAMENTO
FROM itens_notas_fiscais 
WHERE CODIGO_DO_PRODUTO ='1101035' AND QUANTIDADE = 99;

Espero ter ajudado e bons estudos!

Obrigado pela resposta! entendi os problemas com o codigo. Porém, ainda tenho a seguinte dúvida. Pq quando eu solicito a maxima quantidade e agrupo pelo código do produto a minha query não me retorna o número máximo referente aos valores de cada codigo dos produtos??

SELECT CODIGO_DO_PRODUTO, 
MAX(QUANTIDADE) AS QUANTIDADE_MAXIMA,
FROM itens_notas_fiscais 
GROUP BY CODIGO_DO_PRODUTO;

o codigo acima so retorna o valor 99 para todos os itens agrupados.

Neste banco de dados utilizado pelo instrutor durante a formação Victor, a quantidade máxima informada para todos os produtos foi 99, por este motivo quando você executa está query, buscando o valor máximo vendido por produto é retornado o valor 99 para todos.