【问题标题】:SSRS 14 - Matrix Column - Get Value Where Month = MAX(Month)SSRS 14 - 矩阵列 - 获取月份 = MAX(月份)的值
【发布时间】:2018-01-31 15:50:14
【问题描述】:

我有一个矩阵来显示几个月的值。但最后一列我想显示当月和上月之间的 Varianve。我有这个数据集(月):

Servername  Month   Year    Reference   Value   Previous_Value
SV1            8    2017       80        11          Null
SV1            9    2017       80        13           11
SV1           10    2017       80        18           13
SV1           11    2017       80        21           18
SV1           12    2017       80        12           21
SV1            1    2018       80        18           12

基本上,我想构建一个表达式,允许我从 MAX(Month) 和 MAX(Year) 中获取值。我试试这个:

=IIF(Fields!Month.Value = max(Fields!Month.Value, "Months") and Fields!Year.Value = max(Fields!Year.Value, "Months"),Fields!Previous_Value.Value,0)

但是当我运行报告时,我的所有机器都得到 0...我的最终矩阵是:

**Servername    8   9   10  11  12  1   Previous_Value**
      SV1       11  13  18  21  12  18       12

我该怎么做?

谢谢!

【问题讨论】:

    标签: sql-server matrix reporting-services


    【解决方案1】:

    您的表达式是说如果 Month = MAX(Fields!Month.Value) 是 12,Year = Max(Fields!Year.Value) 是 2018,则显示 Previous_Value。

    因为你的行不匹配这个,所以它不会工作。

    我没有对此进行测试,但尝试汇总月份和年份并与之进行比较。通过添加新列在 SQL 中更容易做到这一点

    SELECT *, ([Year] *100) + [Month] as YearMonthKey  FROM myTable
    

    现在你的表达式可以只检查YearMonthKeyMAX(Fields!YearMonthKey.Value)

    【讨论】:

    • 非常感谢您的回复。我在我的 SQL 脚本中添加了该列并使用新字段测试公式,但它仍然在我的报告中给我 0 :(
    • 我不确定您所说的“给我 0”是什么意思。你能编辑你的问题并显示你当前得到的输出吗?
    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多