Tema: Cursores
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/06/2011, 10:35
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Cursores

Uno de los problemas que le veo al asunto es que estás haciendo lecturas casi recursivas que no parecen estar ´bien planteadas.
- Primero buscas todos los registros distintos con estos datos: idpagador, compania, categoria, numero
Código MySQL:
Ver original
  1.     idpagador,
  2.     compania,
  3.     categoria,
  4.     numero
  5.     movimientos
  6.     idpagador,compania, categoria, numero;
Luego, con los mismos datos y en la misma tabla, buscas el mayor valor de fcuota y donde tipo sea "R". En ese contexto, LIMIT es irrelevante porque MAX() sin agrupamientos siempre devuelve un único registro:
Código MySQL:
Ver original
  1.     MAX(fcuota)
  2.     movimientos
  3.     idpagador=pagador AND
  4.     compania=comp AND
  5.     categoria=cat AND
  6.     numero=nro AND
  7.     tipo='R';
Después, y con los mismos datos y en la misma tabla, buscas la cuota y el monto que corresponden a lo mismo.
Código MySQL:
Ver original
  1.     cuota,
  2.     monto
  3.     movimientos
  4.     idpagador=pagador AND
  5.     compania=comp AND
  6.     categoria=cat AND
  7.     numero=nro AND
  8.     fcuota=fecuo AND
  9.     tipo='R'

tengo la impresión de que todo ese conjunto de cosas se podría reducir a:
Código MySQL:
Ver original
  1.     cuota, monto, MAX(fcuota) fcuota, idpagador, compania, categoria, numero
  2.     movimientos
  3.     tipo='R'
  4. GROUP BY idpagador, compania, categoria, numero;
Lo más raro de todo, es que en definitiva no haces nada con todo eso porque lo que guardas al final es otra cosa:
Código MySQL:
Ver original 

¿Estás omitiendo algo o es realmente eso lo que quieres hacer? Porque si haces algo con estos datos puede que necesites un sólo cursor o incluso ninguna, y se pueda hacer un volcado masivo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)