[firebase-br] Tratar valores NULL em SP - Selecionavel

Fábio Henrique Beccaria Sampaio fabiohbsampaio em gmail.com
Qua Maio 3 10:20:19 -03 2006


Faz assim: if (:Variavel is null) then Variavel = 0;

----- Original Message ----- 
From: <savio_assuncao em ibest.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, May 03, 2006 10:17 AM
Subject: [firebase-br] Tratar valores NULL em SP - Selecionavel


ola Pessoal

   { D6 + FB1.5 + DBExpress + CL10 }

   Como posso tratar valore NULL em procedure selecionavel.
   Na procedure abaixo , as colunas  que por ventura naum recebem
   valores retornados do SELECT recebem o valor NULL ,queria que fossem 0 
<zero>.
   E ,aproveitando, porque a variavel vsaldo eh sempre NULL ?
   Parece que a linha :
   vsaldo = vsaldo + ((varejo_avista + atacado_avista + entradas + 
recebimentos) -
                (devolucoes + extornos)); naum eh interpretada ;-)

 Data        Varejo   Atacado Entradas  Devolucoes  Extornos   Recebimentos 
Saldo
99/99/99   56,78    null        21,78        null            null 
145,89         null
99/99/99     0,00   23,76        15,60      45,98         12,90 
167,90        null


deveria ficar assim :

 Data        Varejo   Atacado Entradas  Devolucoes  Extornos   Recebimentos 
Saldo
99/99/99   56,78     0,00        21,78        0,00           0,00 
145,89       224,45
99/99/99     0,00   23,76        15,60      45,98         12,90 
167,90       372,83
......

Obrigado , a todos ....




  CREATE PROCEDURE MAPA_COMISSAO (
    DATAI DATE ,
    DATAF DATE ,
    ID_FUNCIO INTEGER)
RETURNS (
    DATA DATE,
    VAREJO_AVISTA NUMERIC(10,2),
    ATACADO_AVISTA NUMERIC(10,2),
    ENTRADAS NUMERIC(10,2),
    EXTORNOS NUMERIC(10,2),
    DEVOLUCOES NUMERIC(10,2),
    RECEBIMENTOS NUMERIC(10,2),
    SALDO  NUMERIC(10,2))
AS
declare variable idata date  ;
declare variable vsaldo numeric(10,2);
BEGIN
   idata = datai;
   vsaldo = 0 ;
   WHILE ( idata <= dataf ) DO
   BEGIN
    /* Totaliza Venda Varejo A Vista */
    SELECT SUM (O.TOTAL)
    FROM TBORCAM O
    WHERE O.DTORC =:idata AND O.VENDIDO='F'
          AND O.ID_FUNCIO=:ID_FUNCIO AND O.TIPO='V' AND O.VENDA='A'
    INTO :varejo_avista;


    /* Totaliza Venda Atacado A Vista */
    SELECT SUM (O.TOTAL)
    FROM TBORCAM O
    WHERE O.DTORC =:idata AND O.VENDIDO='F'
          AND O.ID_FUNCIO=:ID_FUNCIO AND O.TIPO='A' AND O.VENDA='A'
    INTO :atacado_avista;

    /* Totaliza Entradas de Venda a Prazo */
    SELECT SUM (O.VALORENTRADA)
    FROM TBORCAM O
    WHERE O.DTORC =:idata AND O.VENDIDO='F'
          AND O.ID_FUNCIO=:ID_FUNCIO AND O.VENDA='P'
    INTO :entradas;

    /* Totaliza Devolucoes */
    SELECT SUM (O.TOTAL)
    FROM TBORCAM O
    WHERE O.DTORC =:idata AND O.DEVOLUCAO='S' AND O.ID_FUNCIO=:ID_FUNCIO
    INTO :devolucoes;

    /* Totaliza Extornos */
    SELECT SUM (O.TOTAL)
    FROM TBORCAM O
    WHERE O.DTORC =:idata AND O.EXTORNO='S' AND O.ID_FUNCIO=:ID_FUNCIO
    INTO :extornos;

    /* Totaliza Contas Recebidas */
    SELECT SUM(R.VALPAG)
    FROM TBCONREC R
    WHERE R.DATPAG =:idata AND R.VALPAG>0 AND R.ID_FUNCIO=:id_funcio
    INTO :recebimentos;

    /* Saldo da linha de lancamentos */
    vsaldo = vsaldo + ((varejo_avista + atacado_avista + entradas + 
recebimentos) -
             (devolucoes + extornos));

    /* Dados da linha de retorno */

     DATA = idata;
     SALDO = vsaldo;
    SUSPEND;

    idata = idata + 1;
   end
END



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista