Sql server SQL Server-如何显示包含在任何行都不显示的范围中的日期

Sql server SQL Server-如何显示包含在任何行都不显示的范围中的日期,sql-server,datetime,reporting-services,Sql Server,Datetime,Reporting Services,我必须做一个SSRS报告,我需要获得包含在历史表格中未出现的范围内的日期 例如: 参数: BeginingDate: 2016-10-10 EndDate: 2016-10-15 表历史记录: DateTime - Name 2016-10-11 Yas 2016-10-13 Jesbel 我需要返回一个查询: Date 2016-10-10 2016-10-12 2016-10-14 2016-10-15 所有这些查询都是针对报表的,因此我不能使用外部代码 谢谢。您需要

我必须做一个SSRS报告,我需要获得包含在历史表格中未出现的范围内的日期

例如:

参数:

BeginingDate: 2016-10-10
EndDate:      2016-10-15
表历史记录:

DateTime - Name
2016-10-11 Yas
2016-10-13 Jesbel
我需要返回一个查询:

    Date
2016-10-10
2016-10-12
2016-10-14
2016-10-15
所有这些查询都是针对报表的,因此我不能使用外部代码


谢谢。

您需要在开始和结束范围之间生成日期。然后你需要找到错过的日期

CREATE TABLE Historical
        ([DateTime] datetime, [Name] varchar(6))
    ;

    INSERT INTO Historical
        ([DateTime], [Name])
    VALUES
        ('2016-10-11 00:00:00', 'Yas'),
        ('2016-10-13 00:00:00', 'Jesbel')
    ;
通过使用下面的查询,您可以找到错过的日期

 ;WITH CTE AS
        (
        SELECT CONVERT(DATE,'2016-10-10') AS DATE1
        UNION ALL
        SELECT DATEADD(DD,1,DATE1) FROM CTE WHERE DATE1<'2016-10-15'
        )
        SELECT DATE1 MISSING_ONE FROM CTE
        except 
        select [DateTime] from Historical
        option(maxrecursion 0)

您需要在开始和结束范围之间生成日期。然后你需要找到错过的日期

CREATE TABLE Historical
        ([DateTime] datetime, [Name] varchar(6))
    ;

    INSERT INTO Historical
        ([DateTime], [Name])
    VALUES
        ('2016-10-11 00:00:00', 'Yas'),
        ('2016-10-13 00:00:00', 'Jesbel')
    ;
通过使用下面的查询,您可以找到错过的日期

 ;WITH CTE AS
        (
        SELECT CONVERT(DATE,'2016-10-10') AS DATE1
        UNION ALL
        SELECT DATEADD(DD,1,DATE1) FROM CTE WHERE DATE1<'2016-10-15'
        )
        SELECT DATE1 MISSING_ONE FROM CTE
        except 
        select [DateTime] from Historical
        option(maxrecursion 0)
我是SSRS的新手,所以我不确定下一个方法是否适用于u

下一个查询在SSM上运行良好:

问题是:

结果是:-

获取两个日期之间的所有日期的参考是下一个日期,然后我自定义了上面所需的内容:

我是SSRS的新手,所以我不确定下一个方法是否适用于u

下一个查询在SSM上运行良好:

问题是:

结果是:-

获取两个日期之间的所有日期的参考是下一个日期,然后我自定义了上面所需的内容:


创建一个数字/日期表或使用CTE并用where not in选择,例如Alex提供的链接将起作用。将此标记为重复?创建一个数字/日期表,或使用CTE并使用where not in选择,例如,Alex提供的链接将起作用。将此标记为重复?