统计拥有1/2/3条记录的唯一Staff Ref Nos数量及图表报错解决
解决SSRS柱形图统计不同记录数的唯一Staff Ref数量问题
报错原因
你之前的表达式报错是因为嵌套聚合函数未指定有效范围(scope):Sum函数没有明确指定数据集或分组名称,且CountDistinct无法识别嵌套聚合后的范围,SSRS要求聚合函数的scope必须是字符串常量,对应数据集、包含组或数据区域的名称。
解决方案步骤
步骤1:创建计算字段(可选但更清晰)
在你的数据集中添加一个计算字段,用于计算每个Staff Ref的总记录数:
- 右键点击数据集 → 选择「添加计算字段」
- 名称:
TotalRecords - 表达式:
(注:如果=Fields!NoofOTrecordsin2122.Value + Fields!NoOTrecordsin2223.Value + Fields!NoofOTrecordsin2324.ValueNoOTrecordsin2223是笔误,应为NoofOTrecordsin2223,请修正字段名)
步骤2:配置柱形图
- 插入柱形图后,将
TotalRecords拖到「类别组」区域(作为X轴,自动生成1、2、3三个类别)。 - 将
StaffRef拖到「值」区域,修改值的聚合规则:- 右键点击值区域的
StaffRef→ 选择「表达式」 - 输入以下表达式(替换
YourDatasetName为你实际的数据集名称):=CountDistinct(Fields!StaffRef.Value, "YourDatasetName")
- 右键点击值区域的
替代方案(无需计算字段)
如果不想创建计算字段,直接在类别组中使用表达式分组:
- 类别组的表达式设置为:
=Fields!NoofOTrecordsin2122.Value + Fields!NoOTrecordsin2223.Value + Fields!NoofOTrecordsin2324.Value - Y轴的表达式仍使用
=CountDistinct(Fields!StaffRef.Value, "YourDatasetName")
验证结果
按照你的数据,配置完成后柱形图会显示:
- X轴为1、2、3,对应Y轴数值分别为1、2、2,与你透视的结果一致。
内容的提问来源于stack exchange,提问作者G Scott
相关产品推荐
相关产品推荐

