首页 > 解决方案 > 我需要计算下个月的第 15 个工作日(不包括周末)

问题描述

使用 SQL 我需要在排除周末后计算下个月的 15 日。

例如,如果开始日期是 2020 年 7 月 11 日,那么计算的日期应该是 2020 年 8 月 14 日,如果第 15 天是星期六,那么它应该包括下星期一。

标签: sql-servertsql

解决方案


一旦你创建了一个日历表,它就像这样

select 
   FullDateAlternateKey, 
   EnglishDayNameOfWeek, 
   case when DayNumberOfWeek in (7,1) then null
   else sum(case when DayNumberOfWeek not in (7,1) then 1 else 0 end) 
        over (partition by CalendarYear, MonthNumberOfYear order by DateKey) 
   end BusinessDayNumber
from DimDate
order by datekey 

推荐阅读