Hola amigos, les cueneto hice un procedimiento almacenado el cual deberia calcularme la cantidad de dias de vacaciones deacuerdo a los años q ue lleva el empleado en la empresa el procedimiento almacenado en si lo hice pero no me funciona.... este es mi code:
Código MySQL:
Ver originalDELIMITER $$
-- SPLIT BEGIN DATE IN DAY MONTH YEAR
/*SELECT DATE(CONCAT(AN_INGR, '-', MES_INGR, '-', DIA_INGR)) as fec_ingreso
into fecha_in
FROM PERIODO_INGRESO;
SELECT DAY(fecha_in) AS DIA_ING
INTO dia_ing
from PERIODO_INGRESO;
SELECT MONTH(fecha_in) AS MES_ING
INTO mes_ing
from PERIODO_INGRESO;
SELECT YEAR(fecha_in) AS ANO_ING
INTO ano_ing
from PERIODO_INGRESO;*/
-- SPLIT CURRENT DATE IN DAY MONTH YEAR
-- CALCULATE THE DIFF
SELECT AN_INGR
, MES_INGR
, DIA_INGR
, an_reconocidos
, fer_2
INTO ano_ing
, mes_ing
, dia_ing
, feriado_2
, ano_recono
FROM PERIODO_INGRESO
, datos
WHERE PERIODO_INGRESO.FUN_CODIGO
= datos.FUN_CODIGO
;
WHEN dia_actual
= dia_ing
and mes_actual
= mes_ing
THEN
SET resultado_an_serv
= ano_actual
- (ano_ing
+ an_reconocidos
) ;
IF resultado_an_serv
>= 1 AND resultado_an_serv
<= 14 THEN
SET result_dias_corresp
= 15;
IF result_dias_corresp
= feriado_2
then
SET feriado_2
= result_dias_corresp
;
UPDATE datos
SET fer_2
= feriado_2
, feriado_corresp
= result_dias_corresp
WHERE Fun_Codigo
= funCodigo
;
UPDATE datos
SET feriado_corresp
= result_dias_corresp
WHERE Fun_Codigo
= funCodigo
;
IF resultado_an_serv
>= 15 AND resultado_an_serv
<= 19 THEN
SET result_dias_corresp
= 20;
IF result_dias_corresp
= feriado_2
then
SET feriado_2
= result_dias_corresp
;
UPDATE datos
SET fer_2
= feriado_2
, feriado_corresp
= result_dias_corresp
WHERE Fun_Codigo
= funCodigo
;
UPDATE datos
SET feriado_corresp
= result_dias_corresp
WHERE Fun_Codigo
= funCodigo
;
IF resultado_an_serv
>= 20 THEN
SET result_dias_corresp
= 25;
IF result_dias_corresp
= feriado_2
then
SET feriado_2
= result_dias_corresp
;
UPDATE datos
SET fer_2
= feriado_2
, feriado_corresp
= result_dias_corresp
WHERE Fun_Codigo
= funCodigo
;
UPDATE datos
SET feriado_corresp
= result_dias_corresp
WHERE Fun_Codigo
= funCodigo
;