【发布时间】:2012-09-06 02:07:42
【问题描述】:
我正在构建一个报告,我正在尝试为变量(而不是参数)编写表达式。我计划创建多个变量,每个变量都引用来自不同数据集的金额的 SUM(SUM())。然后,我计划在单个文本框中引用这些变量中的每一个来进行计算。这是为了规避 SSRS 在单个 tablix/matrix 中使用多个数据集的限制。
我需要一些语法方面的帮助。当我单独使用 SUM 时,报告运行良好,我可以毫无问题地对这些值执行计算。例如,这很好用:
变量1:
=SUM(Fields!Amount.Value, "DataSet1")
变量2:
=SUM(Fields!Amount.Value, "DataSet2")
文本框1:
=Variable1.Value - Variable2.Value
但是在尝试将其修改为以下内容时出现错误(这是我真正需要的):
变量1:
=SUM(SUM(Fields!Amount.Value, "DataSet1"))
我收到一条错误消息,提示“报表‘正文’的变量表达式使用没有范围的聚合表达式。除非报表只包含一个数据集,否则在数据区域之外使用的所有聚合都需要范围。”我有一种预感,我的语法/括号放置有问题。我尝试在最后 (SUM(SUM(Fields!Amount.Value, "DataSet1"),"DataSet1") 再次添加 ",DataSet1",但收到有关递归嵌套问题的错误。有什么建议吗?
【问题讨论】:
-
SUM(SUM())是什么意思?我不明白需要额外的SUM。除非你想SUM() * COUNT()?? -
基本上,数据集从表中提取“金额”。金额(tablix 的数据)属于不同的帐户(tablix 的行),以及不同的位置(tablix 的列)。金额的总和将一些位置汇总在一起,第二个总和在 tablix 的底部提供了垂直的总和。我用于此底部水平总计行的表达式是 SUM(SUM(Fields!Amount.Value))。我需要将此值复制到另一个文本框。
-
抱歉,我没有考虑嵌套的行/列组...
标签: reporting-services sum ssrs-2008 ssrs-expression