[firebase-br] URGENTE!!! Poderiam analisar esta trigger

Anderson Sauthier sauthier_fb em yahoo.com.br
Qui Fev 2 08:04:01 -03 2006


  esta é a trigger do MOVFIN, cada lançamento feito ou deletado é atualizada a tabela de saldo do MOVFIN, SLDMOVCTAFIN
   
   
  SLDMOVCTAFIN
  CTAFIN    DATA      SLDANT     CREDITO        DEBITO      SLDATU
  1              01/01        0                 50                   10              40
  1              02/01       40                40                    0               80
  1              03/01       80                 0                     10             70
  1              04/01       70                 0                     0               0
   
  esta é o primeiro trigger que faço, talvez possa ser melhorado.
   
  esta trigger abaixo alimenta esta tabela acima, ela faz o resumo da movimentacao financeira numa tabela de Saldos por conta e dia (tabela Acima).
   
  -quando insert e tipo = C entao acrescenta no CAMPO CREDITO
    -quando insert e tipo = D entao acrescenta no CAMPO DEBITO
  - é feito um update em SLDATU = SLDANT + CREDITO - DEBITO.
   
    - quando data conta+data existirem altera conforme acima.
- quando data conta+data nao existirem cria um registro.
   
  - quando delete diminui o valor do CREDITO ou DEBITO conforme tipo.

  

 
   
  preciso que ao final do trigger seja atualizado os saldos anteriores a atuais conforme tabela acima.
   
  por exemplo no dia 2 se deleto um lançamento de valor 10 a estrutura deve ficar assim:
  
  SLDMOVCTAFIN
  CTAFIN    DATA      SLDANT     CREDITO        DEBITO      SLDATU
  1              01/01        0                 50                   10              40
  1              02/01       40                30                    0              70
  1              03/01       70                 0                     10             60
  1              04/01       60                 0                     0               60

     
  isso para a partir da data em questao e enquanto for a conta tal.
  comecei a fazer um for select, mas nao deu certo. este FOR  SELECT é para ser colocado lá no final da trigger. Desde já agradeço.
   
  FOR SELECT SLDANT, CREDITO, DEBITO
         FROM SLDMOVCTAFIN
         WHERE CTAFINID = NEW/OLD.CTAFINID AND
                      DATA = NEW/OLD.DATA
         INTO :SLDANT, :CREDITO, :DEBITO
  DO
  BEGIN 
      UPDATE ??? COMO FAZER A LOGICA???
  END
   
   
   
  
 


		
---------------------------------
 Yahoo! doce lar. Faça do Yahoo! sua homepage.


Mais detalhes sobre a lista de discussão lista