Hola javahierro:
En realidad no veo nada malo, pero como no incluiste el código que te trae problemas pues puedo suponer que ahí es justamente donde tienes el detalle...
Checa este script, estoy creando un SP que creo debe ser muy semejante a lo que tú tienes:
Primero tendrías que decirnos de qué tipo estás declarando tu variable:
Código:
DECLARE tipo_plnsuel_tblemp VARCHAR(1);
DECLARE tipo_plnsuel_tblemp ENUM ('0', '1', '2');
......
Ahora checa la implementación:
Código MySQL:
Ver original -> plnsuel
ENUM ('0','1','2'), -> );
Query OK, 0 rows affected (0.53 sec)
-> (10, '0'), (11, '1'), (12, '2');
Query OK, 3 rows affected (0.06 sec)
+------------+---------+
| idempleado | plnsuel |
+------------+---------+
| 10 | 0 |
| 11 | 1 |
| 12 | 2 |
+------------+---------+
Observa lo que pasa cuando buscas el idempleado 11 o 12:
Código MySQL:
Ver original+-----------------+
| Regresa un cero |
+-----------------+
| Regresa un cero |
+-----------------+
+----------------+
| Regresa un uno |
+----------------+
| Regresa un uno |
+----------------+
Es decir ESTÁ RECUPERANDO CORRECTAMENTE EL VALOR Y ESTÁ REGRESANDO EL MENSAJE QUE ESPECIFICASTE EN EL SP. Observa que en el SP sólo consideré los casos cuando el campo es 0 o 1... observa que pasa cuando busco el idEmp = 12:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.00 sec)
NO REGRESA NADA, pues no se consideró en ninguno de los IF's.
Postea completo el código de tu SP y con gusto te ayudamos a revisar el error.
Saludos
Leo.