Моя таблица календаря (Calendar_Date, Is_Business_Day) уже заполнена.
Мне уже удалось сделать SELECT
на этой основе:
- Если сегодня до 3-го дня текущего месяца, выберите все дни до этого дня до последнего дня предпоследнего месяца
Например: Сегодня 2018-05-02, это мой вывод:
Calendar_Date | Is_Business_Day
2000-01-01 | 0
... |
2018-03-29 | 1
2018-03-30 | 1
2018-03-31 | 0
- Если сегодня после 3-го дня текущего месяца, выберите все дни до этого дня до последнего дня последнего месяца.
Например: Завтра, 2018-05-03 это будет мой вывод:
Calendar_Date | Is_Business_Day
2000-01-01 | 0
... |
2018-04-28 | 0
2018-04-29 | 0
2018-04-30 | 1
Это мой запрос:
SELECT Calendar_Date, Is_Business_Day
FROM Calendar_Table
WHERE (Calendar_Date <= (CASE WHEN DATEPART(day, GETDATE()) >= 3 THEN EOMONTH(DATEADD(MONTH, - 1, GETDATE())) ELSE EOMONTH(DATEADD(MONTH, - 2, GETDATE())) END))
Это работает отлично, но сейчас я хочу переключиться после первого рабочего дня после 3-го дня месяца вместо переключения после 3-го дня месяца.
Как я могу использовать информацию о рабочих днях в моей календарной таблице, чтобы сделать это?