Hola xplertor,
Veo un problema en el SP que genera que parte de la lógica del mismo aplique solo al primer cliente, es en la línea:
La variable se incrementa correctamente al primer cliente:
sin embargo, al pasar al segundo cliente, la variable "Ano1" no se asigna de nuevo al valor de "ano_ini", por lo que la condición (WHILE Ano1 < ano_fin+1 DO) no se cumple para el resto de clientes.
Una opción para solventar es:
Código MySQL:
Ver original...
/* SET Ano1 = ano_ini; */
OPEN cur1;
SET Ano1
= ano_ini
; /* Asignación para cada iteración del cursor */ WHILE Ano1
< ano_fin
+1 DO...
El problema:
puede ser originado al trata de leer el cursor y el mismo no tiene datos disponibles, en este caso el HANDLER debe manejar esa excepción.
Comparto la idea con gnzsoloyo de la posibilidad de solventer sin el uso del cursor.
Espero sea útil la información.