繁体   English   中英

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()返回一个Object[] ,尽管在SSRS中没有任何显式方法来连接/联合数组,但是使用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.
,","))

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

让我知道是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM