Ver Mensaje Individual
  #5  
Antiguo 02-11-2004
frudolph frudolph is offline
Miembro
 
Registrado: oct 2004
Posts: 40
Reputación: 0
frudolph Va por buen camino
Si estás trabajando con una base de datos relacional (Interbase, Firebird, Oracle, SQL-Server, Informix, DB2, MySQL u otra), la mejor opción sería a través de un procedimiento almacenado que recorra la tabla y acumule en una variable local al procedimiento el total. Cuando llegues al monto deseado (antes de que te pases), deberías cortar el recorrido de la tabla y devolver el último valor.

Otra opción es a través de un método, función o procedimiento directamente con Delphi haciendo lo mismo (recorrer la tabla e ir acumulando hasta alcanzar el valor).

Por supuesto lo primero que tienes que hacer (antes de acumular) ver si te pasas o no del vaor deseado y luego: acumular; o cortar el procedimiento.

Esto es fácil siempre que lo que necesites sea recorrer la tabla secuencialmente; ahora bien, si lo que necesitas es calcular el valor más aproximado, considerando todos los registros posibles, ya tienes que recurrir a un procedimiento recursivo y ver que sumatoria (de las posibles) te cae mejor. Por supuesto, esto llevaría mucho más tiempo de procesamiento y muchos más recursos (memoria).
Responder Con Cita