2012-01-05 49 views
0

我有一個包含2個數據集的報告,並希望在文本框表達式中執行SUM操作。當我想執行一個IIF時,問題就出現了,因爲我只想要一個特定類別的值。具有多個數據集的SSRS IIF語法

我想從dsRetrieveCustomerAssetScores數據集中獲得所有「良好」排名值的總和。請注意,報告中有多個數據集,因此我需要在使用聚合函數時指定範圍。下面是我試過的代碼(以及其他排列)。

= SUM(IIF(領域!ranking.Value, 「好」,1,0), 「dsRetrieveCustomerAssetScores」)

任何想法?

+0

當您嘗試該代碼時發生了什麼? – 2012-01-06 09:33:49

回答

3

你可能在你的報告多個數據集,但我不認爲這是可能有每表矩陣多個數據集。 (Tablix中的子報表可能會綁定到不同的數據集,但子報表中的任何位置只能訪問其他數據集。)

集合公式中指定的範圍通常與tablix中的組相關,而不是數據源。

所以,代碼:

=Sum(iif(Fields!ranking.Value,"Good",1,0)) 

- 應爲表矩陣正在訪問dsRetrieveCustomerAssetScores數據集的表矩陣內的工作,只要。

+0

感謝您的提示。我現在得到這個錯誤:「文本框'Textbox4'的值表達式使用一個沒有作用域的聚合表達式,除非報表只包含一個數據集,否則在數據區域之外使用的所有聚合都需要一個作用域。我可以這樣做:= Count(Fields!ranking.Value,「dsRetrieveCustomerAssetScores」)返回一個值,這樣報表就可以訪問底層數據,我只想過濾聚合的內容。奇怪 - 爲什麼你不能在集合函數中使用IIF? – user545241 2012-01-06 17:31:47

+0

好的,我沒有考慮過你在數據區域之外訪問該彙總的可能性,你還沒有告訴我當你嘗試'= Sum(iif(Fields!ranking.Value,「Good」,1,0),「dsRetrieveCustomerAssetScores」)'。 – 2012-01-06 17:40:11

+0

Thanks for help。當我使用該語法時,出現以下錯誤:textrun的值表達式'Textbox4.Paragraphs [0] .TextRuns [0]'包含錯誤:[BC30516]重載解析失敗,因爲沒有可訪問的'IIf'接受這個數量的參數。 – user545241 2012-01-06 17:51:12