Updates ¿recursivos?
Publicado por Luis (2 intervenciones) el 30/09/2008 21:13:15
He estado mirando vuestro foro y lo cierto es que me gustaría participar en él. De momento me gustaría haceros una pregunta que me tiene loco desde hace muchísimo tiempo. A ver si me logro explicar.
Estoy haciendo un programa en el que se realizan unos arrastres de saldos. Hasta ahí todo normal. Pero el problema me surge cuando se produce la siguiente situación:
Tengo una tabla de unos 120.000 registros.
El registro número 1.000, por ejemplo, cambia su valor. En lugar de ser una salida de 12 euros, fue de 24 euros.
A partir de esta modificación, todos los registros desde el 1000 hasta el fin deben cambiar sus movimientos en base a esa modificación. Es decir, que si antes (por ejemplo) el registro daba un precio medio de 1,20 euros y ahora es de 1,22, pues el resto deben cambiar a 1,22. Esto, con un UPDATE se soluciona sin problemas. El caso está en que la modificación de un registros podría generar que ese UPDATE masivo ya no lo sea y que el programa, o en este caso el SQL, deba tener en cuenta las modificaciones que el propio UPDATE está generando.
Esto lo soluciono o bien con un cursor o bien haciendo obras de ingeniería, con tablas auxiliares, etc. Pero origina una pérdida de tiempo, recursos y redimiento muy grande cuando las modificaciones son de miles de registros.
¿Existe algún comando SQL o algún truco o algún algo para que según se ejecute el UPDATE de una fila, el UPDATE de la siguiente tenga en cuenta el cambio de la anterior? ¿Es decir, que "arrastre" los movimientos?
Muchísimas gracias de antemamo. Ya he visto que gente como Isaías están muy puestos en estos temas y, sinceramente, me salvaríais la vida.
Estoy haciendo un programa en el que se realizan unos arrastres de saldos. Hasta ahí todo normal. Pero el problema me surge cuando se produce la siguiente situación:
Tengo una tabla de unos 120.000 registros.
El registro número 1.000, por ejemplo, cambia su valor. En lugar de ser una salida de 12 euros, fue de 24 euros.
A partir de esta modificación, todos los registros desde el 1000 hasta el fin deben cambiar sus movimientos en base a esa modificación. Es decir, que si antes (por ejemplo) el registro daba un precio medio de 1,20 euros y ahora es de 1,22, pues el resto deben cambiar a 1,22. Esto, con un UPDATE se soluciona sin problemas. El caso está en que la modificación de un registros podría generar que ese UPDATE masivo ya no lo sea y que el programa, o en este caso el SQL, deba tener en cuenta las modificaciones que el propio UPDATE está generando.
Esto lo soluciono o bien con un cursor o bien haciendo obras de ingeniería, con tablas auxiliares, etc. Pero origina una pérdida de tiempo, recursos y redimiento muy grande cuando las modificaciones son de miles de registros.
¿Existe algún comando SQL o algún truco o algún algo para que según se ejecute el UPDATE de una fila, el UPDATE de la siguiente tenga en cuenta el cambio de la anterior? ¿Es decir, que "arrastre" los movimientos?
Muchísimas gracias de antemamo. Ya he visto que gente como Isaías están muy puestos en estos temas y, sinceramente, me salvaríais la vida.
Valora esta pregunta


0