Mostrar Nueva Fecha Final, Sin Contar Los Feriados

Tengo una tabla donde registro los días feriados y necesito una función en donde mande la fecha de inicio y la fecha de fin... La función me debe de mostrar una fecha final aumentándole los feriados que existen entre las dos fechas que se mandan como parámetro
----------------------------------------------------------------------------------------------------------------alter function [dbo].[fnx_fechas](@fdesde datetime, @fhasta datetime)
returns datetime
begin
declare @f_inicio datetime
declare @f_final datetime
declare @num_dia int
declare @fecha datetime
declare @fechaf datetime
set @f_inicio=@fdesde
set @f_final=@fhasta
set @fecha=@f_final
set @fechaf=@f_final
declare @dia_feriado int
declare @dia_feriadof int
declare @df int
set @df = 0
declare @dff int
set @dff = 0
set @dia_feriado=0
set @dia_feriadof=0
if @f_final < @f_inicio
begin
set @f_inicio=@fhasta
set @f_final=@fdesde
end
if @f_final = @f_inicio
begin
set @fecha=@f_final
end
while @f_inicio < @f_final
begin
set @f_inicio=dateadd(dd,1,@f_inicio)
feriado:
set @dia_feriado=(select count(*) from tb_calendario where fecha = @f_inicio)
if @dia_feriado > 0
begin
set @df= @df + 1
set @fecha=dateadd(dd,@df,@f_final)
feriadof:
set @dia_feriado=(select count(*) from tb_calendario where fecha = @fecha)
if @dia_feriadof > 0
begin
set @df= @df + 1
set @fecha=dateadd(dd,@dia_feriado,@fecha)
goto feriadof
end
set @f_inicio=dateadd(dd,@dia_feriado,@f_inicio)
goto feriado
end
end
return @fecha
end
----------------------------------------------------------------------------------------------------------------
Esta es la función que estuve desarrollando ... Por favor no se cual es el error ...
muchas gracias ... !

1 Respuesta

Respuesta
-1
Creo que el problema son los goto... trata de hacer tu función si usar estos saltos...
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas