Fórum Qual erro desta SP ? #60610

22/04/2009

0

Qdo executo esta SQL :
da um erro de aritmetc overflow e mostra so a primeira linha SALDO ANTERIOR.


SEGUE O SP:

CREATE PROCEDURE MOVIMENTOFLUXOCAIXA(
DATAINICIAL DATE)
RETURNS(
CAILAN INTEGER,
CAIDAT DATE,
CAITIP CHAR(1) CHARACTER SET NONE,
CAIHIS VARCHAR(40) CHARACTER SET NONE,
CAIVAL NUMERIC(18, 2),
SALDO NUMERIC(18, 2))
AS
DECLARE VARIABLE DEBITO DOUBLE PRECISION;
DECLARE VARIABLE CREDITO DOUBLE PRECISION;
DECLARE VARIABLE SALDOATUAL DOUBLE PRECISION;
BEGIN
select Sum(CPR.ValorOriginal) from ContasPagarReceber CPR
Inner Join Contas co on co.CodConta = CPR.CodConta
Inner Join GrupoContas gc on gc.CodGrupoConta = co.CodGrupo
Where gc.TipoConta = 1 AND CPR.DataVencimento < :DATAINICIAL into :DEBITO;

select Sum(CPR.ValorOriginal) from ContasPagarReceber CPR
Inner Join Contas co on co.CodConta = CPR.CodConta
Inner Join GrupoContas gc on gc.CodGrupoConta = co.CodGrupo
Where gc.TipoConta = 2 AND CPR.DataVencimento < :DATAINICIAL into :CREDITO;

SALDOATUAL =CREDITO - DEBITO;
CAILAN =0 ;
CAIDAT = DATAINICIAL - 1;
CAITIP = ´´;
CAIHIS = ´SALDO ANTERIOR´;
CAIVAL = SALDOATUAL;
SALDO = SALDOATUAL;
suspend;
for select
CPR.CODCONTASPAGARRECEBER,CPR.DATAVENCIMENTO,GC.TIPOCONTA,CPR.HISTORICO,CPR.VALORORIGINAL,CPR.VALORORIGINAL from
CONTASPAGARRECEBER CPR
Inner Join Contas co on co.CodConta = CPR.CodConta
Inner Join GrupoContas gc on gc.CodGrupoConta = co.CodGrupo
where CPR.DATAVENCIMENTO >= :DATAINICIAL order by CPR.DATAVENCIMENTO,CPR.CODCONTASPAGARRECEBER into
:CAILAN,:CAIDAT,:CAITIP,:CAIHIS,:CAIVAL,:SALDO do
begin
if (CAITIP = ´2´) then SALDO = SALDOATUAL + :CAIVAL;
if (CAITIP = ´1´) then SALDO = SALDOATUAL - :CAIVAL;
SALDOATUAL = :SALDO;
suspend;
end
END


Walter Faria

Walter Faria

Responder

Posts

16/06/2009

Emerson Nascimento

resolveu o problema ?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar