Ver Mensaje Individual
  #14  
Antiguo 18-05-2005
axelbb axelbb is offline
Miembro
 
Registrado: oct 2004
Posts: 127
Reputación: 20
axelbb Va por buen camino
Era lo que decía en apartado B), puede haber una situación que justifique ese campo.
Bien, si tenés un campo fecha, como supongo, al insertar el registro queda al último del grupo de registros de su misma fecha, ¿no?. Probaste:

1) Calcular saldo HASTA ese día con
select last 1 saldo where fecha < TuFecha order by fecha desc

(hacé un índice desc para facilitarle las cosas al motor)

Ahí tenés rápidamente el saldo anterior. Luego

2) Recalcular saldos posteriores:

UPDATE Cuenta SET Saldo = Haber - Debe + [SaldoAnt] where fecha >= TuFecha
Que actualiza todos los registros subsiguientes al cálculo del saldo. [SaldoAnt] es UNA SUMA FIJA que le agregas a la instrucción que surge del primer select. Lo probé y funciona.
Luego de cada insert o update o delete, ejecutás estas dos, y debería funcionar (al menos sí me anduvo en FireBird).

Suerte
Responder Con Cita