彙總函數 (Reporting Services)

傳回指定運算式的自訂彙總,由資料提供者定義。

語法

Aggregate(expression, scope)

參數

傳回類型

傳回類型是由資料提供者決定。 如果資料提供者不支援此函數或無法使用資料,則傳回 Nothing。

備註

Aggregate 函數會提供支援資料提供者功能的方法。 例如,SQL ServerAnalysis Services 資料處理延伸模組會使用資料提供者從 MDX 查詢擷取扁平化的資料列集。 結果集中的某些資料列可能會包含在資料來源伺服器上計算的彙總值。 這些值稱為「伺服器彙總」。 若要在 Analysis Services 的圖形化查詢設計工具中檢視伺服器彙總,可以使用工具列的 [顯示匯總] 按鈕。 如需詳細資訊,請參閱<Analysis Services MDX 查詢設計工具使用者介面>。

當您在 Tablix 資料區域的詳細資料列中顯示匯總和詳細資料集值的組合時,一般並不會包含伺服器彙總,因為這些值並非詳細資料。 不過,您可以顯示針對資料集所擷取的所有值,並自訂計算及顯示匯總資料的方式。

Reporting Services 會在報表的運算式中偵測 Aggregate 函數的使用,以用來判斷是否要在詳細資料列中顯示伺服器彙總。 如果在資料區域的運算式中包含 Aggregate,則伺服器彙總只會顯示在群組總計或總計資料列中,而不會顯示在詳細資料列中。 如果想要在詳細資料列中顯示伺服器彙總,請不要使用 Aggregate 函數。

您可以藉由變更 [資料集屬性] 對話方塊的 [將小計當做詳細資料列] 選項值來變更這項預設行為。 當這個選項是設定為 True 時,所有的資料 (包括伺服器彙總) 會顯示為詳細資料。 當設定為 False 時,伺服器彙總會顯示為總計。 這個屬性的設定會影響連結至這個資料集的所有資料區域。

[!附註]

所有參考 Aggregate 的報表項目的包含群組都必須有其群組運算式的簡單欄位參考,例如 [FieldName]。 您不能在使用複雜群組運算式的資料區域中使用 Aggregate。 如果是 SQL ServerAnalysis Services 資料處理延伸模組,則您的查詢必須包含型別 LevelProperty (而非 MemberProperty) 的 MDX 欄位,以支援使用 Aggregate 函數的彙總。

比較 Aggregate 和 Sum 函數

Aggregate 函數與 Sum 之類的數值彙總函數的不同點在於 Aggregate 函數會傳回資料提供者或資料處理延伸模組所計算的值。 Sum 之類的數值彙總函數會傳回報表處理器針對一組資料 (取自 scope 參數所決定的資料集) 而計算的值。 如需詳細資訊,請參閱<使用運算式中的內建報表和彙總函數 (Reporting Services)>中列出的彙總函數。

範例

下列程式碼範例顯示的運算式會擷取欄位 LineTotal 的伺服器彙總。 運算式會加到屬於群組 GroupbyOrder 的資料列中的儲存格。

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")