[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