我正在使用SSRS报告构建器,该构建器正在使用调用SQL Server 2000数据库的数据集。
查询获取了几个不同字段的总和,并且还提取了与该客户端编号有关的所有记录。我想得到总和的总和,但由于细节行,它已经结束了。基本上我想要的是不同总和列值的总和。
=Sum(Fields!tot.Value, "table1_Group3")
我看到你可以通过小组获得总和,我尝试了上面的表达式,但它返回时出现错误:
The Value expression for the textbox 'tot' has a scope parameter that is not
valid for an aggregate function...
table1_Group3
是保存报表中总和值的组的名称。
有关如何在此报告中将distinct
值提升为sum
的任何建议。
答案 0 :(得分:0)
我想你需要写sum(distinct columnName)
。
答案 1 :(得分:0)
=Sum(Fields!tot.Value, "table1_Group3")
上面的代码将为您提供当前“table1_Group3”中所有行的“tot”总和。这意味着此表达式仅在table1_Group3中的某处有意义。否则,SSRS不知道该组的当前实例是哪个。
听起来你想在多个组中加总这个值,但只从组的每个实例中取一个“tot”。 (你确定该组中的所有行都具有相同的“Tot?”)
如果tot是返回数据中其他字段的总和,则只需在公式中添加这些字段即可。这可能还有一些简化SQL查询的好处。
其他一些可行的选项: - 更改SQL查询,以便每组只有一行获取Tot字段集。 - 使用报告中的嵌入代码来保持每个组仅添加一次的运行总计,例如在组头中。
(如果升级到2008R2 SSRS是一个选项,那么可以在这里使用查找功能,甚至可以回顾相同的数据集。)
答案 2 :(得分:0)
使用sql server上的临时表将查询/数据集更改为sum(distinct tot)