我有一个 Reporting Services 报告,其中显示了一堆 KPI 分数。每个 KPI 在报告中都有自己的行,对于每一行,我们显示过去 3 年的 SUM 或 AVG(取决于 KPI 类型)得分,然后是当年每月的 SUM、AVG 或(理想情况下)总 YTD 数字:
KPI 2009 2010 2011 Jan Feb Mar Apr May etc.
Bagels Eaten (Total) 100 90 70 10 20 9 13 14
Sandwiches (Cumm. YTD) 90 75 86 13 23 46 65 76
我看到的问题是RunningValue函数似乎跨行工作,而不是在过滤的列组和构成 Jan、Feb、Mar 列的当前行内(每月数据,按年和月分组,过滤今年)。所以输出与上面不同,而是基于行中所有值的相当随机的数字(我确信它不是随机的,它看起来就是这样)。
列组称为“MonthNum”,单元格值的表达式根据源数据中的“AggregationType”值决定应用哪个聚合:
=Switch(Fields!AggregationType.Value="SUM", Sum(Fields!ScoreValue.Value),
Fields!AggregationType.Value="AVG", Avg(Fields!ScoreValue.Value),
Fields!AggregationType.Value="YTD",
RunningValue(Fields!ScoreValue.Value,Sum,"MonthNum"))
非常感谢任何帮助
更新: 这是正在使用的数据集的几行示例(每月得分,每 kpi)(格式有点棘手!)。聚合类型为“YTD”的项目将应用累积 YTD 表达式,其他所有内容均为当月的 SUM:
KpiID Title KPIOwner ScoreValue YearNum MonthNum ReportingGroupTitle ScoreType DisplayOrder DisplayPrecision UnitOfMeasure AggregationType
5 Donuts Served Donut Manager 35 2007 1 Catering Services Actual 10020 0 Number YTD
5 Donuts Served Donut Manager 42 2007 2 Catering Services Actual 10020 0 Number YTD
5 Donuts Served Donut Manager 86 2007 3 Catering Services Actual 10020 0 Number YTD
5 Donuts Served Donut Manager 14 2007 4 Catering Services Actual 10020 0 Number YTD
6 Donuts Cooked Donut Manager 45 2007 1 Catering Services Actual 10020 0 Number SUM
6 Donuts Cooked Donut Manager 48 2007 2 Catering Services Actual 10020 0 Number SUM
6 Donuts Cooked Donut Manager 93 2007 3 Catering Services Actual 10020 0 Number SUM
6 Donuts Cooked Donut Manager 32 2007 4 Catering Services Actual 10020 0 Number SUM
6 Donuts Cooked Donut Manager 18 2007 5 Catering Services Actual 10020 0 Number SUM