none
SUBSTITUIR VALOR NEGATIVO POR 0(ZERO) RRS feed

  • Pergunta

  • Olá amigos,

    estou precisando substituir um resultado de uma consulta negativo pelo numero 0.

    segue estrutura da consulta.

    SELECT b.codigo, 
           b.referencia, 
           b.nome                             AS "DESCRIÇÃO", 
           Sum(A.quant)                       AS VENDA, 
           D.loja                             AS ESTOQUE, 
           B.preco_compra                     AS "PREÇO COMPRA", 
           B.ipicompra                        AS IPI, 
           Sum(A.quant) - ( D.loja ) + 1      AS SUGESTAO, 
           ( ( B.preco_compra * B.ipicompra / 100 + B.preco_compra ) * ( 
             Sum(A.quant) - ( D.loja ) + 1 ) )AS "TOTAL SUGESTÃO", 
           B.dt_ultimacompra                  AS "ULTIMA COMPRA" 
    FROM   saida_produto a 
           INNER JOIN produto b 
                   ON a.id_produto = b.id 
           INNER JOIN saida c 
                   ON a.id_saida = c.id 
           INNER JOIN produto_estoque D 
                   ON A.id_produto = D.id_produto 
           INNER JOIN pessoa E 
                   ON B.id_fornecedor = E.id 
    WHERE  E.nome LIKE '%SESTINI%' 
           AND C.data >= '01.12.2017' 
           AND C.data <= '01.04.2018' 
           AND C.tipo IN ( 'NCE', 'CF' ) 
           AND B.eliminado = 'N' 
           AND A.cancelado = 'N' 
    GROUP  BY codigo, 
              "DESCRIÇÃO", 
              estoque, 
              referencia, 
              B.preco_compra, 
              ipi, 
              "ULTIMA COMPRA" 
    ORDER  BY venda DESC 

    ##FIM##

    ESSE É O RESULTADO ATUAL:

    AS COLUNAS QUE EU NÃO QUERO QUE MOSTRE VALOR NEGATIVO É: SUGESTAO E TOTAL SUGESTÃO

    quarta-feira, 5 de setembro de 2018 19:03

Todas as Respostas

  • Boa tarde,

    Experimente utilizar o Case nos trechos em questão para verificar se o valor é negativo. Ex:

    case when Sum(A.quant) - D.loja + 1 < 0
        then 0
        else Sum(A.quant) - D.loja + 1
    end AS SUGESTAO, 
    case when Sum(A.quant) - D.loja + 1 < 0
        then 0
        else (B.preco_compra * B.ipicompra / 100 + B.preco_compra) * (Sum(A.quant) - D.loja + 1 )
    end AS "TOTAL SUGESTÃO", 

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 5 de setembro de 2018 20:05
  • Podes fazer assim:

    SELECT b.codigo, 
           b.referencia, 
           b.nome                             AS "DESCRIÇÃO", 
           Sum(A.quant)                       AS VENDA, 
           D.loja                             AS ESTOQUE, 
           B.preco_compra                     AS "PREÇO COMPRA", 
           B.ipicompra                        AS IPI, 
           iif(substrng(cast(Sum(A.quant) - ( D.loja ) + 1 as varchar),1,1)='-','0',(Sum(A.quant) - ( D.loja ) + 1)      AS SUGESTAO, 
           ( ( B.preco_compra * B.ipicompra / 100 + B.preco_compra ) * ( 
             Sum(A.quant) - ( D.loja ) + 1 ) )AS "TOTAL SUGESTÃO", 
           B.dt_ultimacompra                  AS "ULTIMA COMPRA" 
    FROM   saida_produto a 
           INNER JOIN produto b 
                   ON a.id_produto = b.id 
           INNER JOIN saida c 
                   ON a.id_saida = c.id 
           INNER JOIN produto_estoque D 
                   ON A.id_produto = D.id_produto 
           INNER JOIN pessoa E 
                   ON B.id_fornecedor = E.id 
    WHERE  E.nome LIKE '%SESTINI%' 
           AND C.data >= '01.12.2017' 
           AND C.data <= '01.04.2018' 
           AND C.tipo IN ( 'NCE', 'CF' ) 
           AND B.eliminado = 'N' 
           AND A.cancelado = 'N' 
    GROUP  BY codigo, 
              "DESCRIÇÃO", 
              estoque, 
              referencia, 
              B.preco_compra, 
              ipi, 
              "ULTIMA COMPRA" 
    ORDER  BY venda DESC 

    Aplica a mesma ideia para a outra coluna.

    quinta-feira, 6 de setembro de 2018 16:35