[英]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中没有任何显式方法来连接/联合数组,但是使用JOIN
和SPLIT
函数可以做到这一点:
=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.