[firebase-br] Duvidas SP

Zottis zottissistemas em brturbo.com.br
Ter Fev 12 13:54:16 -03 2008


Eu Uso Direto no componente DATASET, mas acho que te ajuda

Select  T2.Data,
          coalesce( Sum (T2.Entrada), 0) as Entradas
          ,coalesce( Sum (T2.saida), 0 ) as saidas
          ,(select   coalesce( Sum (C1.Entrada ), 0 ) from caixa  C1 where 
C1.data <= T2.data and C1.deletado = 'N' )
         -  (select   coalesce( Sum (C1.Saida ), 0 ) from caixa  C1 where 
C1.data <= T2.data and C1.deletado = 'N' )    as Saldo

          ,(select   coalesce( Sum (C1.Entrada ), 0 ) from caixa  C1 where 
C1.data < T2.data and C1.deletado = 'N' )
         -  (select    coalesce( Sum (C1.Saida ), 0 ) from caixa  C1 where 
C1.data < T2.data and C1.deletado = 'N' )   as SaldoAnterior


>From  Caixa T2
Group By T2.Data
Order by T2.Data

PS: eu utilizo um campo para as saídas e outro para as Entradas


Zottis

Zottis Sistemas - 2008 Ano XI
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "Andre Ricardo Bazan" <arbazan em gmail.com>
To: <lista em firebase.com.br>
Sent: Tuesday, February 12, 2008 1:30 PM
Subject: [firebase-br] Duvidas SP


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.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista