如何在不创建表达式数据集的情况下限制一个月的 ssrs 报告

How to limit ssrs report for a month without creating expression dataset

我创建了一个 SSRS 报告,它使用许多子查询和连接,它使用 2 个参数 StartDate 和 EndDate。 我想将我的报告限制为 1 个月,即用户可以 select 任何开始日期,但他们的结束日期应小于或等于 31 天。如果他们 select 结束日期 >31 那么它应该显示错误消息。 如果限制使用一个月而不是 31 天,这将很有帮助,因为 2 月只有 28/29 天,有些月份只有 30 天。

注意:我看到很多解决方案都提到创建一个包含表达式的新数据集。由于我的查询太长,我不想创建新的数据集。

提前致谢。

由于您想限制用户 select 的日期,我将创建一个可能日期的数据集,并让用户 select 从中获取第二个参数。

DECLARE @END_DATE  DATE  = DATEADD(MONTH, 1, @START_DATE)

;WITH GETDATES AS  
    (  
        SELECT @START_DATE AS THEDATE
        UNION ALL  
        SELECT DATEADD(DAY,1, THEDATE) FROM GETDATES  
        WHERE THEDATE < @END_DATE  
)

SELECT * FROM GETDATES 
OPTION (MAXRECURSION 0)