Способ сделать подобные вещи близок к тому, что вы сделали, но просто расширьте его дальше. Создайте таблицу BusinessDate, в которой есть каждая дата, а затем каждое правило, которое вы внедрили в нее. Вы можете зайти так далеко, что включите столбец, такой как ReportDate
, который будет возвращать для каждой даты дату, для которой должен выполняться отчет.
Сделайте это один раз, и это будет работать вечно больше. Возможно, вам придется обновляться для будущих праздников один раз в год, но лучше, чем раз в день!
Это также позволит вам обновлять данные, специфичные для вашего бизнеса, такие как квартальные даты, корпоративные праздники и т. Д.
Если вы хотите узнать больше об этой теме, найдите темы, касающиеся создания измерения даты в хранилище данных. Это та же самая общая проблема, с которой вы сталкиваетесь.