Não mostrar se resultado de select for = 0
09/11/2017
0
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
Post mais votado
09/11/2017
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
Fabiano Carvalho
Mais Posts
09/11/2017
Fernando
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
09/11/2017
Fabiano Carvalho
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
09/11/2017
Fernando
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
09/11/2017
Marcelo Santana
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.
09/11/2017
Fernando
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.
09/11/2017
Fernando
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.
Clique aqui para fazer login e interagir na Comunidade :)