Re: [firebase-br] Ajuda para montar um SP que calcule saldo diário..

Fernando Reis Guimarães fernandobhz em gmail.com
Qua Out 25 15:39:51 -03 2006


create procedure sp_saldo return (data, lan, valor, saldo)
as
begin

for select data, lan, valor from caixa do
begin

select sum(saldo) from caixa where lan < lan into :saldo;

end
suspend;

end;

Em 25/10/06, Fausto <fausto.s.a em uol.com.br> escreveu:
>
> Boa tarde gente..
> Agora estou apelando mesmo..
> Estou precisando de uma ajuda para escrever uma stored procedure
> retornável que calcule o saldo diário,tal qual extrato bancário.
> Tenho a tabela CAIXA com os seguintes campos
> CAIDAT  DATE NOT NULL  : Data de lançamento
> CAILAN  INTEGER NOT NULL : PK AutoIncremento via generator
> CAIHIS    VARCHAR(40) : Histórico
> CAIVAL  NUMERIC(12,2): Valor
> CAITIP  CHAR(1):Informa se é Débito ou Crédito (D/C)
> Preciso desenvolver uma procedure que me retorne estes campos da tabela
> CAIXA, mais uma terceira coluna que seria o calculo do saldo atual,
> entre duas datas.
> De tal forma que o resultado fosse este:
>
>       Data       Lan    Valor     Saldo
>    01/10/2005    87    250,00    250,00
>    01/10/2005    88    200,00    450,00
>    01/10/2005    89    200,00    650,00
>    01/10/2005    99    -435,00   215,00
>    04/10/2005    91    300,00    515,00
> Observem que a coluna saldo é calculada linha a linha..No paradox eu
> utilizava uma Query com a seguinte instrução:
> SELECT CAIDAT, CAILAN, CAIVAL, sum (DISTINCT CAIVAL)
> FROM CAIXA
> GROUP BY CAIDAT,CAILAN,CAIVAL
>
> Mas os amigos Eduardo Jedliczka e Kleber Caneva, me responderam que no
> FIREBIRD a clausula distinct utiliza toda uma linha e não somente para
> função SUM.
> Portanto se alguém puder me ajudar com a construção desta SP, ou tenha
> algo já pronto e puder me ceder ficarei eternamente grato.
>
> Fausto
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
>



-- 
Atenciosamente;
Fernando.



Mais detalhes sobre a lista de discussão lista