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 过滤器将在 TODAY
和 DATEADD()
函数 (=DATEADD(DateInterval.Month,-13,TODAY)
)
之间使用
或在您的 SQL 中过滤:
WHERE Month BETWEEN SELECT DATEADD(MONTH,-13,GETDATE()) AND GETDATE
我正在创建一个显示月度表现的报告 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 过滤器将在 TODAY
和 DATEADD()
函数 (=DATEADD(DateInterval.Month,-13,TODAY)
)
或在您的 SQL 中过滤:
WHERE Month BETWEEN SELECT DATEADD(MONTH,-13,GETDATE()) AND GETDATE