[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