hola amigos les cuento, tengo este procedimiento almacenado con clausulas CASE y WHEN, lo termine de hacer pero no se como finalizarlo, ya q en el END $$ me manda error de sintaxis y no me deja finalizarlo correctamente para ya comenzar a utilizarlo en mi BD, el soted procedure en cuestion es :
Código:
DELIMITER $$
DROP PROCEDURE IF EXISTS descontar_feriados $$
CREATE PROCEDURE descontar_feriados (funCodigo VARCHAR (11), diasPedidos INT)
begin
declare feriado1, feriado2, resultado_fer1, resultado_fer2, resultado_intermedio INT;
set feriado1=0;
SELECT fer_1, fer_2 INTO feriado1, feriado2 FROM datos WHERE Fun_Codigo = funCodigo;
#feriado1 mayor q dias pedidos
CASE 1 WHEN feriado1>diasPedidos THEN
SET resultado_fer1= feriado1 - diasPedidos;
UPDATE datos SET fer_1 = resultado_fer1 WHERE Fun_Codigo= funCodigo;
#feriado1 igual q dias pedidos
CASE 2 WHEN feriado1 = diasPedidos THEN
SET resultado_fer1= feriado1 - diasPedidos;
UPDATE datos SET fer_1 = resultado_fer1 WHERE Fun_Codigo= funCodigo;
#feriado1 menor q dias pedidos
CASE 3 WHEN feriado1<diasPedidos THEN
SET resultado_fer1 = diasPedidos- feriado1 ;
SET resultado_intermedio = feriado2 - resultado_fer1;
UPDATE datos SET fer_ = 0 WHERE Fun_Codigo= funCodigo;
UPDATE datos SET fer_2 = resultado_intermedio WHERE Fun_Codigo= funCodigo;
#feriado2 mayor q dias pedidos
CASE 4 WHEN feriado1 = 0 and feriado2> diasPedidos THEN
SET resultado_fer2 = feriado2 - diasPedidos;
UPDATE datos SET fer_2 = resultado_fer2 WHERE Fun_Codigo= funCodigo;
#feriado2 igual q dias pedidos
CASE 5 WHEN feriado2 = diasPedidos THEN
SET resultado_fer2 = feriado2 - diasPedidos;
UPDATE datos SET fer_2 = resultado_fer2 WHERE Fun_Codigo= funCodigo;
CASE 6 WHEN feriado1<=0 and feriado2 <= 0 then
UPDATE datos SET fer_1 = 0, fer_2 = 0 WHERE Fun_Codigo= funCodigo;
END case;
END $$
como debo finalizar el stored procedure para q me funcione bien?? el delimitador q estoy usando es $$, atento a sus contestaciones y de antemano muchas gracias.... bye