FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problema con Stored Procedure para actualizar tabla con datos de otra tabla.
Estimados Amigos:
Tengo dos tablas de una base de datos MySQL, una de ellas tiene datos sobre las cuotas sociales de un afiliado a una mutual, y la otra tiene un registro de pagos de estas cuotas sociales. Ej: Tabla CuotasSociales. ID Fecha pura saldo interes importepag Pagada Mes Af_Id 1 27/01/2012 0.000 0.000 0.000 59.000 1 Dec 2 2 27/01/2012 0.000 34.910 0.000 24.090 2 Dec 3 Tabla Planillas. Af_ID Valor Periodo 2 59.000 Dec 3 24.090 Dec Aproximadamente son 2000 registros en ambas tablas. Lo que necesito hacer es actualizar los datos de la tabla CuotasSociales con los datos de la tabla planilla, Pues anteriormente se inserto los registros mediante un procedimiento almacenado que inserta un valor (59,000 pesos, valor de la cuota social) en el campo importepag y un '1' en el campo pagada, valor que representa el pago total de la cuota(reg. N°1), la otra posibilidad es como se muestra en el reg. N°2, si el pago fue menor a 59 pesos, se inserta el valor pagado(24.090 pesos ) en el campo importepag y la diferencia respecto a 59 se ingresa en el campo saldo, se coloca un '2' en el campo pagada que representa un pago parcial. Los valores de la tabla planillas son extraidos de los descuentos por planillas de los afiliados.
Este procedimiento almacenado funciona bien, aunque demora en promedio 43seg. aprox., pero funciona. Despues de correr este procedimiento , se limpia la tabla planilla y se cargan nuevos datos que representan descuentos por otras modalidades por ej. descuentos por CBU, obviamente dentro del mismo periodo. Como dije arriba debo actualizar la tabla cuotassociales con estos nuevos datos de la tabla planillas. y aqui recide el problema que se me presenta. La logica de la actualizacion seria la siguiente: 1. tomar un registro de la tabla planillas, ver si existe el afiliado en la tabla cuotassociales. 2. si existe comprobar que el saldo sea mayor que cero ( es decir que este parcialmente pagada la cuota). actualizar el importepag y el campo pagada en '1' si la suma es igual a 59 o seguir con el valor '2' si aun es menor que 59. 3. Seguir los pasos 1 y 2 hasta el ultimo registro de la tabla planillas. Este es el procedimiento almacenado que intentar hacer esto.
pero me actualiza solo un registro. lo que he notado es que cuando el select dentro del repeat es nulo, directamente la variable done se pone a 1 y sale del bucle y termina el procedimiento. Uso como lenguaje anfitrion el PHP 5.3, pero hice ejecutar estos procedimiento con los clientes de MySQL: Navicat y EMS mysqlmanager. Sinceramente no se como modificar este procedimiento para que actualice todos los registro que correspondan. Gracias por su tiempo. Saludos.
__________________
Adrián Murúa. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizar campos de una Tabla cuando se actualize otra tabla | RedVenom | Varios | 28 | 11-05-2011 18:19:38 |
Actualizar tabla con datos de otra tabla mediante UPDATE | Rockin | Firebird e Interbase | 18 | 28-11-2007 19:15:42 |
Actualizar un campo de una tabla con datos que se encuentran en otra tabla | Morphine | SQL | 4 | 15-12-2006 22:47:42 |
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla | taru | MySQL | 1 | 27-07-2006 15:36:12 |
Actualizar tabla con datos de otra tabla | ElDioni | SQL | 2 | 02-05-2006 16:04:04 |
|