本文档介绍了如何在SSRS中使用RunningValue函数计算特定组或完整表的运行方差和运行总体方差,并附带了示例。
为了演示SSRS运行方差的计算,我们使用了下面的员工表,该表有15条记录,按职业分组。接下来,我们使用Var函数显示每个组和表的收入和销售额列的方差。下图显示了表格报表中的记录。我们在下方报表中使用的Var表达式是:
每组方差
=Var(Fields!YearlyIncome.Value)
=Var(Fields!Sales.Value)
每表方差
=Var(Fields!YearlyIncome.Value, "Tablix1")
=Var(Fields!Sales.Value, "Tablix1")

在SSRS中计算运行方差
为此,我将添加一个新列到收入和销售列的右侧,并命名标题为Var Inc和Var Sl。接下来,右键单击Var Sl下方的文本框,选择表达式。为了更好地理解报表,我建议您参考SSRS中的Var、图表、表格、分组和格式表格文章。
它会打开以下表达式窗口来计算运行方差。为了实现这一点,我们必须使用聚合Var函数。下面的SSRS RunningValue代码计算了每个职业组的员工销售额的运行方差。
=RunningValue(Fields!Sales.Value, Var, "Occupation")

类似地,右键单击Var Inc下方的文本框,并编写以下表达式,以查找每个职业组的年收入的运行方差。更多函数 >> 点击这里!
=RunningValue(Fields!YearlyIncome.Value, Var, "Occupation")
请点击预览选项卡,查看每个职业组的员工年收入和销售额的运行方差。

我将创建另外两个新的SSRS列,并将它们命名为Var FInc和Var FSl,以计算整个表的运行方差。为此,您必须将组名(“Occupation”)替换为表名(“Tablix1”)或数据集名(“DSet”)。首先,为Var FInc标题下的文本框添加以下RunningValue表达式。
=RunningValue(Fields!YearlyIncome.Value, Var, "DSet")
类似地,为Var FSl标题下的文本框编写以下表达式,以查找表销售额的运行方差。
=RunningValue(Fields!Sales.Value, Var, "DSet")
下面的报表计算了每个职业组的年收入和销售额的运行方差,并包含了完整的员工表。

在SSRS中计算运行总体方差
为此,创建另外四个新列,并将它们命名为VarP Inc、VarP Sl、VarP FInc和VarP FSl。接下来,我们必须在RunningValue函数中使用VarP聚合函数来计算总体方差。
计算每个职业组的收入和销售额的运行总体方差的表达式。
=RunningValue(Fields!YearlyIncome.Value, VarP, "Occupation")
=RunningValue(Fields!Sales.Value, VarP, "Occupation")
使用以下两个RunningValue表达式计算整个表的收入和销售额的运行总体方差。
=RunningValue(Fields!YearlyIncome.Value, VarP, "DSet")
=RunningValue(Fields!Sales.Value, VarP, "DSet")
