SSRS中使用RunningValue创建帕累托图出现嵌套聚合报错如何解决
报错原因
你当前表达式报错的核心原因是SSRS不允许在聚合函数内部嵌套另一个指定了数据集作用域的聚合函数。你原表达式中,Sum(Fields!LossQty.Value, "Conf_Scrap") 被放在了RunningValue的计算逻辑内部,属于违规的嵌套聚合写法,因此触发了报错。
解决步骤
1. 前置配置调整
- 先将图表的类别组(对应你本次需求的类别为Press字段)按数量降序排序,这是帕累托图计算正确的前提:打开类别组属性,切换到「排序」选项卡,排序依据选择
Sum(Fields!Qty.Value),排序顺序选择降序。 - 确认数据集名称确实为
Conf_Scrap,且你表达式中使用的LossQty字段和源数据中Qty字段为同一字段,避免字段名不匹配的报错。
2. 替换正确的累计百分比表达式
将原有表达式替换为如下写法,把总数量的求和逻辑移到RunningValue外部,避免嵌套聚合:
=RunningValue(Fields!LossQty.Value, Sum, Nothing) / Sum(Fields!LossQty.Value, "Conf_Scrap") * 100
如果你的图表有明确的类别组(比如组名为PressGroup),可以将第三个参数替换为类别组名称,作用域更精准:
=RunningValue(Fields!LossQty.Value, Sum, "PressGroup") / Sum(Fields!LossQty.Value, "Conf_Scrap") * 100
3. 后续图表配置
- 将累计百分比对应的系列改为折线图类型,绑定到次Y轴,将次Y轴的取值范围设置为0到100即可。
你提供的测试数据总数量为145,排序后累计百分比计算结果应为:F≈68.97%、C≈79.31%、B≈86.21%、E≈93.1%、A≈96.55%、D≈100%,可自行核对结果是否符合预期。
内容的提问来源于stack exchange,提问作者lostcoder
相关产品推荐
相关产品推荐

