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 idpagador,
compania,
categoria,
numero
movimientos
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:
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 cuota,
monto
movimientos
tipo='R'
tengo la impresión de que todo ese conjunto de cosas se podría reducir a:
Código MySQL:
Ver original cuota
, monto
, MAX(fcuota
) fcuota
, idpagador
, compania
, categoria
, numero
movimientos
tipo='R'
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:
¿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.