[firebase-br] Erro ao puxar o saldo com STORED PROCEDURE
andre conrado
acf.andre em gmail.com
Ter Jul 26 08:27:01 -03 2011
Bom dia amigos!!!
É melhor usar o COALESCE por dentro:
FOR SELECT SUM(COALESCE(VL_RECEBER,0)) - SUM(COALESCE(VL_PAGAR,0)) FROM
CONTAS
Porque no somatório da própria campo, também ocorre este problema.
abços.
Em 25 de julho de 2011 17:49, Eduardo Jedliczka <edujed em gmail.com> escreveu:
> Da forma como a procedure está escrita, é necessário que exista valores em
> ambos os campos...
>
> Lembre-se: NULL (traduzindo, algum valor desconhecido) somado à qualquer
> valor, sempre será NULL (algum outro valor desconhecido).
>
> Para resolver isto, utilize o coalesce.
>
> for select Coalesce(sum(VL_RECEBER),0) - Coalesce(sum(VL_PAGAR),0) from
> contas
>
> ==========================
> Eduardo Jedliczka
> Apucarana - Pr
> ==========================
>
>
>
> Em 25 de julho de 2011 17:41, Luiz Carlos <lcarlos2000 em bol.com.br>
> escreveu:
>
> > Tenho uma procedure cfe. abaixo:
> >
> > SET TERM ^ ;
> >
> > CREATE OR ALTER PROCEDURE SP_SUMCONTAS (
> > dataini date,
> > datafin date)
> > returns (
> > total numeric(15,2))
> > as
> > begin
> > for select sum(VL_RECEBER) - sum(VL_PAGAR) from contas
> > where DT_VCTO between :dataini and :datafin
> > into :total do
> > begin
> >
> > suspend;
> > end
> > end^
> >
> > Uso o codigo abaixo no delphi para puxar o saldo:
> >
> > dataini := DIA1.Date ;
> > datafin := DIA2.Date ;
> >
> > IBSProc.StoredProcName := 'SP_SUMCONTAS';
> > IBSProc.ParamByName('dataini').Value :=DIA1.Date ; //datetimerpicker
> > IBSProc.ParamByName('datafin').Value :=DIA2.Date ; //datetimerpicker
> > IBSProc.ExecProc;
> > edsaldo.Text:= CurrtoStr(IBSProc.ParamByName('total').AsCurrency);
> >
> > Funciona corretamente se no periodo pesquisado tiver lançamentos nos
> campos
> > VL_RECEBER e VL_PAGAR, porem se só tiver lançamentos em um dos campos o
> > saldo dá 0,00. Por exemplo se no periodo só tiver contas a pagar o saldo
> dá
> > 0,00 ou se no periodo só tiver contas a receber tambem dá 0,00. Como
> > corrigir isso? o erro está na procedure ou no modo como estou chamando
> ela
> > no Delphi?
> >
> > Grato
> >
> > Luiz Carlos
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
Um Abraço,
André Conrado.
055 21 9176-7013 - Claro
Mais detalhes sobre a lista de discussão lista