SSRS使用过滤器中的减法功能

时间:2017-06-02 16:38:48

标签: sql-server visual-studio reporting-services sql-server-2012 ssrs-2008-r2

我正在创建一个按月显示效果的报告。我有200101的历史数据。当我创建并预览报告时,所有数据显示从200101到最近一个月。

我想限制最近13个月的月数。

我尝试使用此表达式

=max(Fields!month.Value)-13

这不起作用并显示错误。

2 个答案:

答案 0 :(得分:1)

DATEADD()函数怎么样? (如果我理解你的问题)

=DATEADD(DateInterval.Month,-13,MAX(Fields!Month.Value))

其他选项是在SSRS或SQL中过滤数据。

SSRS过滤器将在TODAYDATEADD()函数(=DATEADD(DateInterval.Month,-13,TODAY))之间使用

或者在SQL中过滤:

WHERE Month BETWEEN SELECT DATEADD(MONTH,-13,GETDATE()) AND GETDATE

答案 1 :(得分:0)

理想情况下,你的表达应该是

=max(Fields!month.Value-100-IFF(Fields!month.Value%100>1,1,88))

100表示​​1年,1表示月份;对于月份如201701的情况,88实际上是100-12,那么你需要你的价值是201512(回溯13个月)

如需更多检查,我们需要检查我们是否有从200101开始的13个月数据

=IFF(Fields!month.Value>200201,max(Fields!month.Value-100-IFF(Fields!month.Value%100>1,1,88)),200101)