[firebase-br] ajuda com stored procedure
Reijanio Nunes Ribeiro
rnribeiro em gmail.com
Sex Mar 9 22:01:56 -03 2012
boa noite a todos estou com u m problema pois eu preciso que na
primeira linha pegue o saldo anterior e some e abata e totalize por
linhas mais esta dando erro na soma do saldo anterior com
CREATE OR ALTER PROCEDURE MOVIMENTACAO (
dt1 date,
dt2 date,
pvalor numeric(13,2),
pemp integer)
returns (
codigo integer,
credito numeric(18,4),
debito numeric(18,4),
saldo_atlz numeric(18,4))
as
BEGIN
-- o erro ocorre aqui pois deveria pegar saldo da soma do saldo
anterior com o primeiro lancamento do intervalo porem o valor da
totalmente diferente
SELECT cast(:pvalor as numeric(10,2)) +
SUM(CASE WHEN MVC_TIP = 'C' THEN MVC_VAL ELSE -MVC_VAL END)
FROM
FID005
WHERE
(MVC_DTC IS NOT NULL) and
(MVC_DTC <= :dt1)
INTO
:SALDO_ATLZ;
-- Laço de leitura e envio de registros.
FOR SELECT
FID_COD,
(CASE WHEN MVC_TIP = 'C' THEN MVC_VAL ELSE 0 END),
(CASE WHEN MVC_TIP = 'D' THEN MVC_VAL ELSE 0 END)
FROM
FID005
WHERE
(MVC_DTC IS NOT NULL)AND
(MVC_DTC between :dt1 and :dt2)
ORDER BY
FID_COD
INTO
:CODIGO,
:CREDITO,
:DEBITO
DO
BEGIN
-- Atualiza o saldo.
SALDO_ATLZ = SALDO_ATLZ + CREDITO - DEBITO;
-- Retorna mais um registro.
SUSPEND;
END -- FOR
END
ex: se pvalor recebe 250 e o primeiro valor de credito ou debito fosse
118 para credito ou debito o saldo-atlz deveria ser 368 ou 122 porem
fica em 535 e não sei por que isto
Mais detalhes sobre a lista de discussão lista