SSRS 在过滤器中使用减法函数

SSRS using Subtract Function in Filters

我正在创建一个显示月度表现的报告 basis.I 具有 200101 年的历史数据。当我创建和预览报告时,所有数据都显示从 200101 到最近一个月。

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

我试过使用这个表达式

=max(Fields!month.Value)-13

这不起作用并显示错误。

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

=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)

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