我创建了一个SSRS报告,该报告使用了许多子查询和连接,它使用了2个参数StartDate和EndDate。 我想将报告限制为1个月,即用户可以选择任何StartDate,但结束日期应该小于或等于31天。如果他们选择结束日期> 31则应显示错误消息。 如果限制使用一个月而不是31天,它会有所帮助,因为feb仅包含28/29天,而某些月只有30天。
注意:我看到很多解决方案都涉及创建一个带有表达式的新数据集。由于我的查询太长,我不想创建新的数据集。
先谢谢。
答案 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)