[firebase-br] Duvidas SP

Andre Ricardo Bazan arbazan em gmail.com
Ter Fev 12 13:30:23 -03 2008


Tenho uma Tabela de Caixa Diario com os seguintes campos:

RefCX
Data
Doc
Valor
Saldo

estou utilizando o seguinte procedimento para pegar o saldo anterior

CREATE PROCEDURE PEGA_SALDO_ANTERIOR (
    DATACX TIMESTAMP)
RETURNS (
    DATA TIMESTAMP,
    VALOR FLOAT,
    SALDO FLOAT,
    D_C VARCHAR(7))
AS
DECLARE VARIABLE SALDOATUAL FLOAT;
begin
  saldoatual = 0;
  for
    select c.data, c.valor, c.saldo, c.d_c
    from caixa c
    where c.data <= :datacx
    Order by c.data, c.refcx
    into
      :data,
      :valor,
      :saldo,
      :d_c
  do
  begin
    if (:data is null) then
    begin
      suspend;
    end else
    begin
      saldoatual = :saldo;
    end
  end
  suspend;
end

como no select estou pedindo para ele pegar os lançamentos menores que a data que eu digitei o ultimo lançamento, provavelmente quando este arquivo estiver grande a busca do saldo anterior vai saturar meu servidor, entao gostaria de saber se existe outra forma de eu pegar o saldo anterior.



Mais detalhes sobre a lista de discussão lista