SSRS 中的 AVG 多重查找表达式 (Visual Studio)

AVG multiple Lookup expression in SSRS (Visual Studio)

如果我有 6 个人,每个人有 2 个调查回复。每个调查回复有 10 个问题。在我的数据集中,我有一列包含所有问题(1、2、3、4 ....),第二列包含与问题相对应的所有答案。见下图。

我正在尝试平均每个人的问题 1、2、5 和 8 的分数。

我在报告属性中添加了一个 VB 代码并使用下面的表达式并能够获得问题 1 的 AVG。有没有办法合并问题 2、5 和 8 的 AVG ?

=Code.AvgLookup(
  LookupSet(
    Fields!Instructorname.Value & "1. Course achieved?",
    Fields!Instructorname.Value & Fields!Questions.Value,
    Fields!Scores.Value, "DataSet1")
 )

问答布局

看来你的函数只需要一道题来计算。注意 LookupSet() returns a Object[] 尽管在 SSRS 中没有任何明确的 concatenate/union 数组方法,但有一个技巧可以使用 JOINSPLIT 函数:

=Code.AvgLookup(split(
  join(
    LookupSet(Fields!Instructorname.Value & "1. Course achieved?",
      Fields!Instructorname.Value & Fields!Questions.Value,
      Fields!Key.Value,Fields!Code.Value,"DataSet1"),","
  )
  & "," &
  join(
    LookupSet(Fields!Instructorname.Value & "2. Content was easy to understand",
      Fields!Instructorname.Value & Fields!Questions.Value,
      Fields!Key.Value,Fields!Code.Value,"DataSet1"),","
  )
  & "," &
  join(
    LookupSet(Fields!Instructorname.Value & "5. Material was easy to understand",
      Fields!Instructorname.Value & Fields!Questions.Value,
      Fields!Key.Value,Fields!Code.Value,"DataSet1"),","
  )
  & "," &
  ... -> join(lookupset(...) for question 8 and so on.
,","))

尽管这样做有效,但处理您的报告可能需要更多时间。处理此问题的正确方法应该是创建适当的 table 结构和关系,使您可以直接从源获取报告中所需的数据。

如果有帮助请告诉我。