Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2012, 13:03
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 17 años
Puntos: 0
Compo Finalizo este stored procedure con CASE Y WHEN???

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