Я пытаюсь использовать предопределенное значение INT, дающее 1 или 0 как рабочий день, или не считать последовательность скользящих рабочих дней.Я перепробовал много разного кода и проверил здесь разные посты, но ни один не достаточно конкретен, чтобы работать с моим.
Предопределенное значение INT - "business_day_flag_int".Это происходит от преобразования вычислений, дающих мне "day_business_day_flag", который является битовым значением.В настоящее время суббота / воскресенье и праздничные дни в банке активируют 0 для "day_business_day_flag", а понедельник-пятница, если выходной - выходной, присваивает ему значение 1.
Как заставить это работать в таблице обновлений, которую я могу добавить востальная часть моего файла генерации таблицы?Если понадобится больше информации, дайте мне знать.
Я перепробовал множество изменений и изменений того, что у меня здесь.Если я удаляю значения даты, это дает мне значение int для всех строк в столбце примерно 12600 рабочих дней.Если я использую диапазон дат, он дает мне
DECLARE @StartDate DATETIME = '01/01/2000' --Starting value of Date Range
DECLARE @EndDate DATETIME = '01/01/2050' --End Value of Date Range
DECLARE
@DayOfWeekInMonth INT,
@DayOfWeekInYear INT,
@DayOfQuarter INT,
@WeekOfMonth INT,
@CurrentYear INT,
@CurrentMonth INT,
@CurrentQuarter INT
DECLARE @CurrentDate AS DATETIME = @startDate
SET @CurrentMonth = DATEPART(MM, @CurrentDate)
SET @CurrentYear = DATEPART(YY, @CurrentDate)
SET @CurrentQuarter = DATEPART(QQ, @CurrentDate)
UPDATE [EDW_MDM].[dbo].[CALENDAR_DIM] SET
business_day_flag_int = Convert(INT, day_business_day_flag)
UPDATE [EDW_MDM].[dbo].[CALENDAR_DIM] SET
rolling_business_day_sequence = (SELECT count(business_day_flag_int) FROM [EDW_MDM].[dbo].[CALENDAR_DIM]
WHERE business_day_flag_int = 1 and
day_date between @StartDate and @CurrentDate)
. Я хочу, чтобы столбец "roll_business_day_sequence" отсчитывал последовательно рабочие дни.Например, строка 1 = 1, строка 2 = 2 и т. Д. До конца моего календаря.
Обновление 1: изменила строку кода на
UPDATE [EDW_MDM].[dbo].[FCFCU_CALENDAR_DIM] SET
rolling_business_day_sequence = datediff(day,@StartDate,day_date) WHERE day_business_day_flag = 1
Это дало мне счетные днии установить значения строки Rolling_business_day_sequence равными нулю, где не имеет day_busienss_day_flag = 1 и по-прежнему считать их, а не считать их.Как сделать так, чтобы день не добавлялся?