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

Fernando Lepore sistema em spimarcas.com.br
Qua Maio 3 04:31:47 -03 2006


Está respondido!

----- Original Message ----- 
From: "Alisson" <arsuart em uol.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, May 03, 2006 10:29 AM
Subject: Re: [firebase-br] Tratar valores NULL em SP - Selecionavel


> Vc pode fazer como o Colega Fabio disse.. no If Null.. receber Zero..
>
> ou entao faça assim..
>
>    SELECT COALESCE(SUM (O.TOTAL),0)
>    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;
>
> Utilize o Coalesce.. pq se retornar nulo.. ele substitui pra vc por 
> Zero...
>
> Falow..!!!!
>
>
> <savio_assuncao em ibest.com.br> escreveu na mensagem 
> news:20060503131721.4438CE3127 em sauron.ibest.com.br...
> 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
>
>
>
>
>


--------------------------------------------------------------------------------


______________________________________________
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


--------------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.385 / Virus Database: 268.5.1/328 - Release Date: 1/5/2006





Mais detalhes sobre a lista de discussão lista