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

时间:2016-07-22 20:01:19

标签: sql-server reporting-services ssrs-2008 ssrs-2008-r2

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

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

先谢谢。

1 个答案:

答案 0 :(得分:1)

由于您要限制用户选择的日期,我将创建可能日期的数据集,并让用户从中选择第二个参数。

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)