CREATE FUNCTION dbo.GetFeriale (@InputDate DATE) RETURNS DATE AS BEGIN DECLARE @NextWorkingDay DATE = @InputDate; -- Controllo se il giorno è festivo o weekend WHILE EXISTS ( SELECT 1 FROM Holidays WHERE HolidayDate = @NextWorkingDay ) OR DATEPART(WEEKDAY, @NextWorkingDay) IN (1, 7) -- 1 = Domenica, 7 = Sabato BEGIN -- Se è festivo o weekend, passa al giorno successivo SET @NextWorkingDay = DATEADD(DAY, 1, @NextWorkingDay); END RETURN @NextWorkingDay; END;