【问题标题】:SSRS using Subtract Function in FiltersSSRS 在过滤器中使用减法函数
【发布时间】:2017-06-02 16:38:48
【问题描述】:

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

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

我尝试使用这个表达式

=max(Fields!month.Value)-13

这不起作用并显示错误。

【问题讨论】:

  • 您看到的错误是什么?

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


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 2013-02-06
      相关资源
      最近更新 更多