SSRS表达式 - 聚合变量

时间:2012-09-06 02:07:42

标签: reporting-services sum ssrs-2008 ssrs-expression

我正在构建一个报告,我正在尝试为变量(不是参数)编写表达式。我打算创建多个变量,每个变量引用来自不同数据集的数量的SUM(SUM())。然后,我计划在单个文本框中引用这些变量中的每一个来进行计算。这是为了规避SSRS在单个Tablix /矩阵中使用多个数据集的限制。

我需要一些语法帮助。当我单独使用SUM时,报告运行正常,我可以毫无问题地对这些值执行计算。例如,这很好用:

变量1:

=SUM(Fields!Amount.Value, "DataSet1")

变量2:

=SUM(Fields!Amount.Value, "DataSet2")

Textbox1的:

=Variable1.Value - Variable2.Value

但是在尝试将其修改为以下内容时出现错误(这是我实际需要的):

变量1:

=SUM(SUM(Fields!Amount.Value, "DataSet1"))

我收到错误消息“报表'body的变量表达式'使用不带范围的聚合表达式。除非报表只包含一个数据集,否则在数据区域外使用的所有聚合都需要作用域。”我有预感,我的语法/ parantheses放置有问题。我尝试在最后添加“,DataSet1”(SUM(SUM(Fields!Amount.Value,“DataSet1”),“DataSet1”),但收到有关递归嵌套问题的错误。有任何建议吗?

1 个答案:

答案 0 :(得分:4)

我猜你在哪里分配变量,它没有这些列组的概念,所以唯一的选择是对整个数据集求和。

我认为您可以尝试以下方法之一:

  1. 从Tablix中分配值(如果它允许你,你可能需要自定义代码聚合然后设置变量)
  2. 在条件总和中再次指定分组条件,例如SUM(IIF(Fields!Location.Value = TheLocationValueForTheColumnYouNeed, Fields!Amount.Value, 0))