Não mostrar se resultado de select for = 0
Boa Tarde,
Tenho o select simples ( mysql) abaixo que faço para contar um estoque de terminado item que está com um determinado prestador de serviços;
Acontece que gostaria que me mostrasse apenas se o resultado da subtração for maior que 0
já tentei isto e não funcionou !!!
Tentei isto também para simplificar o codigo e também não funcionou.
Agradeço de coração se alguem puder me ajudar.
Tenho o select simples ( mysql) abaixo que faço para contar um estoque de terminado item que está com um determinado prestador de serviços;
Acontece que gostaria que me mostrasse apenas se o resultado da subtração for maior que 0
SELECT cod_produto, SUM(entrada) as entradas, SUM(saida) as saidas, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto
já tentei isto e não funcionou !!!
SELECT cod_produto, SUM(entrada) as entradas, SUM(saida) as saidas, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' AND total > 0 GROUP BY cod_produto
Tentei isto também para simplificar o codigo e também não funcionou.
SELECT cod_produto, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' AND total > 0 GROUP BY cod_produto
Agradeço de coração se alguem puder me ajudar.
Fernando
Curtidas 0
Melhor post
Fabiano Carvalho
09/11/2017
Tente assim
SELECT * FROM ( SELECT cod_produto, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto) AS [SRC] WHERE TOTAL > 0
GOSTEI 1
Mais Respostas
Fernando
09/11/2017
Boa TArde,
Deu erro de sintaxe
Deu erro de sintaxe
Erro Static analysis: 12 errors were found during analysis. Unexpected character. (near "[" at position 162) Unexpected character. (near "]" at position 166) An expression was expected. (near "(" at position 14) Unexpected token. (near "(" at position 14) This type of clause was previously parsed. (near "SELECT" at position 19) Unexpected token. (near ")" at position 157) Unrecognized keyword. (near "AS" at position 159) Unexpected token. (near "[" at position 162) Unexpected token. (near "SRC" at position 163) Unexpected token. (near "]" at position 166) This type of clause was previously parsed. (near "WHERE" at position 169) Unrecognized statement type. (near "WHERE" at position 169) Comando SQL: Documentação SELECT * FROM ( SELECT cod_produto, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto) AS [SRC] WHERE TOTAL > 0 Mensagens do MySQL : Documentação #1064 - Você tem um erro de sintaxe no seu SQL próximo a '[SRC] WHERE TOTAL > 0' na linha 11
GOSTEI 0
Fabiano Carvalho
09/11/2017
isso no sql server funciona haha, mas enfim, não conheço muito mysql, mas tente dessa forma.
SELECT cod_produto, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto WHERE TOTAL > 0 HAVING SUM(entrada) - SUM(saida) > 0
GOSTEI 1
Fernando
09/11/2017
isso no sql server funciona haha, mas enfim, não conheço muito mysql, mas tente dessa forma.
SELECT cod_produto, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto WHERE TOTAL > 0 HAVING SUM(entrada) - SUM(saida) > 0
Ele conseguiu executar mas ainda retorna valor 0.
Para se ter ideia, ele retorna o numero 6 que é o correto e retorna o Zero referente a um outro item, este não deveria aparecer nessa consulta.
Obrigado pelo apoio
GOSTEI 0
Marcelo Santana
09/11/2017
Boa tarde, Fernando. Já fizeram alguns testes hein. Tente dessa forma:
Espero que de certo, tenha uma ótima tarde.
SELECT cod_produto, (SUM(entrada)-SUM(saida)) as total FROM `estoq_prestador` WHERE ( SELECT (SUM(entrada)-SUM(saida))) > 0 GROUP BY cod_produto;
Espero que de certo, tenha uma ótima tarde.
GOSTEI 0
Marcelo Santana
09/11/2017
falto setar o cod_produto na clausula Where. :)
GOSTEI 0
Fernando
09/11/2017
falto setar o cod_produto na clausula Where. :)
Boa noite Marcelo,
O codigo funcionou em partes, agora ele não aparece mais os itens que estão zerados mas deixou de fazer a subtração.
GOSTEI 0
Fernando
09/11/2017
isso no sql server funciona haha, mas enfim, não conheço muito mysql, mas tente dessa forma.
SELECT cod_produto, (SUM(entrada) - SUM(saida)) as total FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto WHERE TOTAL > 0 HAVING SUM(entrada) - SUM(saida) > 0
Depois de algumas coca-colas hehe Segue a solução - eu removi o where total pois acredito que ficou redundante
SELECT cod_prestador, cod_produto, (SUM(entrada) - SUM(saida)) as TOTAL FROM estoq_prestador WHERE cod_prestador = '440' GROUP BY cod_produto HAVING SUM(entrada) - SUM(saida) > 0
Desde já, agradeço a ajuda.
GOSTEI 0