簡體   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