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 数组方法,但有一个技巧可以使用 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.
,","))
尽管这样做有效,但处理您的报告可能需要更多时间。处理此问题的正确方法应该是创建适当的 table 结构和关系,使您可以直接从源获取报告中所需的数据。
如果有帮助请告诉我。
如果我有 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 数组方法,但有一个技巧可以使用 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.
,","))
尽管这样做有效,但处理您的报告可能需要更多时间。处理此问题的正确方法应该是创建适当的 table 结构和关系,使您可以直接从源获取报告中所需的数据。
如果有帮助请告诉我。