Sql 下5个可用日期

Sql 下5个可用日期,sql,sql-server,Sql,Sql Server,我想知道是否有人能告诉我如何使用一个只存储周末日期和银行假日日期的表来获得接下来的5个可用日期。。因此,它必须选择与表中任何日期都不冲突的未来5天 我想从这份日期清单中看到以下结果: 07/11/2015 (Saturday) 08/11/2015 (Sunday) 09/11/2015 (Holiday) 14/11/2015 (Saturday) 15/11/2015 (Sunday) 结果: 05/11/2015 (Thursday) 06/11/2015 (Friday) 10/11/

我想知道是否有人能告诉我如何使用一个只存储周末日期和银行假日日期的表来获得接下来的5个可用日期。。因此,它必须选择与表中任何日期都不冲突的未来5天

我想从这份日期清单中看到以下结果:

07/11/2015 (Saturday)
08/11/2015 (Sunday)
09/11/2015 (Holiday)
14/11/2015 (Saturday)
15/11/2015 (Sunday)
结果:

05/11/2015 (Thursday)
06/11/2015 (Friday)
10/11/2015 (Tuesday)
11/11/2015 (Wednesday)
12/11/2015 (Thursday)`

根据有限的信息,这里有一个快速破解:

with offsets(n) as (
    select  1 union all
    select  2 union all
    select  3 union all
    select  4 union all
    select  5 union all
    select  6 union all
    select  7 union all
    select  8 union all
    select  9 union all
    select 10 union all
    select 11
)
select top 5 dateadd(dd, n, cast(getdate() as date)) as dt from offsets
where dateadd(dd, n, cast(getdate() as date) not in (
    select dt from <exclude_dates>
)
order by dt

一个可能的解决方案是创建一个包含一年中所有可能日期的表

select top 5 date
from possible_dates
where date not in
   (select date from unavailable_dates)
and date > [insert startdate here]
order by date

试一试并发布一个问题怎么样?不确定从哪里开始..那么样本记录和预期结果如何。。我编辑了这篇文章,可能格式不正确。问题很清楚,不需要你发布的例子。您需要发布一些代码并指出您存在的问题。你不能指望有人会为你做这件事,这不是本网站的目标。有了圣诞节,你可能只会得到4个结果2次周末+2天圣诞节,更好的结合11。谢谢Shawnt00。。我想这正是我需要的。。我只在工作日看到了类似的东西,不包括周末,但不确定我是否可以使用它。。我想我应该像上面的人建议的那样把它贴出来。。非常感谢你们,我相信这会对我有帮助。@Alfons是的,我想可能是10,但这是一个很好的情况。