SSRS中如何对Actual_Volume求和并取Nominations的唯一值?
在SSRS中实现指定分组聚合的方法
我来给你说两种实用的方法,都能实现你要的效果——同一个Nominations值只显示一次,同时对应Actual_Volume的总和:
方法一:数据集层面用SQL聚合(推荐)
这种方法直接在数据源查询里完成聚合,效率更高,报表端只需要展示结果就行。你可以把数据集的SQL语句改成这样:
SELECT Nominations, SUM(Actual_Volume) AS Total_Actual_Volume FROM YourTableName -- 替换成你的实际表名 GROUP BY Nominations
执行这个查询后,数据集里每一行就是唯一的Nominations值和对应的Actual_Volume总和。之后在报表里直接把这两个字段拖到表格里,再给Total_Actual_Volume设置小数位数为2(右键单元格→文本框属性→数字→数值,调整小数位数),就能得到你要的结果了。
方法二:报表设计端通过分组实现
如果不想修改数据集,也可以在报表设计界面通过分组来处理:
- 先添加一个表格,把
Nominations和Actual_Volume字段分别拖到两个单元格里。 - 右键点击表格的详细行(Details行),选择「添加组」→「父组」,分组依据选择
Nominations。 - 这时候会自动生成分组行,你可以把原来的详细行隐藏掉(右键详细行→行可见性→选择「隐藏」)。
- 在分组行的
Actual_Volume单元格里,把默认的字段替换成聚合表达式:=Sum(Fields!Actual_Volume.Value)。 - 最后同样给这个单元格设置小数位数为2,就搞定了。
这两种方法都能实现你要的效果,优先推荐第一种,因为数据库层面的聚合运算比报表端处理更高效哦。
内容的提问来源于stack exchange,提问作者user2019295
相关产品推荐
相关产品推荐

