Ver Mensaje Individual
  #2  
Antiguo 22-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cool

esta sentencia lo haria... pero es bastante mas lenta que hacer un ciclo que arrastre el saldo y actualice el campo.
Código:
Update caja c1
   set saldo = (select sum(nvl(ingreso, 0) - nvl(gasto, 0)) 
                  from caja c2 
                 where c2.norden < c1.norden) 
               + nvl(ingreso, 0) - nvl(gasto, 0);
la función nvl es una función que te devuelve el valor del segundo parámetro si el primero es null. Tengo entendido que hay alguna udf en interbase que hace esa conversión, aunque no se cual es ni el nombre de la función... eso ya será tu tarea investigarlo.

También podes hacerlo con un stored procedure, pero la lógica seria la misma que en delphi, con la ventaja que no tenes que hacer viajar los datos al cliente.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate

Última edición por jachguate fecha: 22-04-2004 a las 20:37:05. Razón: cortar en varias lineas el SQL
Responder Con Cita