如何使用日历引用表计算SQL Server中给定日期的工作日

use*_*773 4 sql-server calendar date count

我有两张桌子.一个表是具有date列和kindofday列的日历.该kindofday栏目包含'bankday','saturday','sunday'和'holiday'.我需要考虑假期,否则网上有几个查询可以工作......

        date                          kindofday
1999-08-24 00:00:00:000                bankday
Run Code Online (Sandbox Code Playgroud)

我正在努力构建一个可以计算给定日期的工作日数的查询.就像是:

Select [date] + 12 business days.我不知道如何使用Calendar表作为参考 - 基本上我需要在这个日历表中找到一个日期,然后在一些工作日倒计时并提取该日期.我将把它放在一个函数中,所以不用担心复杂性.我可能没有看到一个愚蠢的简单解决方案.

即使他们不使用我的日历表,我也会接受任何考虑假期的解决方案.我可以改变日历表但是我需要为了使这项工作...即:使用binary而不是string'bankday'等...

我试过这个:我已经从日历中删除了所有非银行工作日并添加了一个integer密钥,然后set @date = (select key from calendar where @date=[date]然后将该工作日的数量添加到该密钥并返回日期,但问题是何时@date是非银行工作日它不会在日历表中找到匹配...

Ano*_*non 5

将问题改为"下一个@count银行@start_date日,哪一个最后发生?"

SELECT @end_date = MAX(date)
FROM (
  SELECT TOP(@count)
    date
  FROM Calendar
  WHERE date > @start_date
    AND kindofday = 'bankday'
  ORDER BY date
) t
Run Code Online (Sandbox Code Playgroud)