我的报告中存在问题。 我有一个像这样的矩阵
|ID |
|Question(TEXT)| |Point(Value)| |Calculated(Average)| |Calculated(Satisfaction)%|
Summary: |Average(Average) | |Average(Satisfaction)%|
此矩阵位于另一个组中,该组是一个页面组。
所以,我的问题出在其中一个Page组中,
Question_Text为空白,并且所有点(值)都为0.
行中的平均值显示正确的值,但汇总平均值显示不正确,因为它还考虑了额外的行并计算平均值。
因此,如果所有平均值之和为40且有4个问题(包括空白问题) 平均值为10而不是13.33,因为它除以4而不是3。
由于查询而显示该行,因此我是否需要更改查询,或者我是否可以在SSRS中执行此操作。
答案 0 :(得分:2)
您可以使用这样的表达式来排除空白问题:
=Avg(IIf(Fields!Question_Text.Value = "" or IsNothing(Fields!Question_Text.Value)
, Nothing
, Fields!Point_Value.Value))
或替代方案:
=Sum(Fields!Point_Value.Value)
/ Sum(IIf(Fields!Question_Text.Value = "" or IsNothing(Fields!Question_Text.Value), 0.0, 1.0))'Updated
评论后修改:
我将这些表达式添加到报告中 - 第一次正常工作,第二次在次要更新后也工作正常(请参阅编辑详情)。
我使用以下查询创建了一个测试数据集:
select Question_Group = 'Group1', Question_Text = 'Q1', Point_Value = 10
union all select Question_Group = 'Group1', Question_Text = 'Q2', Point_Value = 15
union all select Question_Group = 'Group1', Question_Text = 'Q3', Point_Value = 15
union all select Question_Group = 'Group1', Question_Text = '', Point_Value = 0
union all select Question_Group = 'Group2', Question_Text = 'Q4', Point_Value = 10
union all select Question_Group = 'Group2', Question_Text = 'Q5', Point_Value = 15
union all select Question_Group = 'Group2', Question_Text = 'Q6', Point_Value = 15
union all select Question_Group = 'Group2', Question_Text = null, Point_Value = 0
我刚刚创建了一个基于Question_Group
的组,并将这两个表达式添加到组尾。
在设计模式下报告:
根据以上数据集报告结果: