共用方式為


MDX 數據操作 - RollupChildren 函式

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

多維度表達式 (MDX) RollupChildren 函式會匯總成員的子系,將不同的一元運算符套用至每個子系,並將這個匯總的值傳回為數位。 一元運算符可由與子成員相關聯的成員屬性提供,或者運算符可以是直接提供給函式的字串表達式。

RollupChildren 函式範例

在多維度表達式 (MDX) 語句中使用 RollupChildren 函式很簡單,但此函式對 MDX 查詢的影響可能很廣泛。

RollupChildren 函式的效果發生在設計為對現有 Cube 數據執行選擇性分析的 MDX 查詢中。 例如,下表包含 Net Sales 父成員的子成員清單,其一元運算符(以括弧中顯示的 UNARY_OPERATOR 成員屬性表示)。

父成員 子成員
淨銷售額 國內銷售(+)

國內回報(-)

外國銷售(+)

外國回報(-)

淨銷售父成員目前提供凈銷售額減去國內外銷售總值,而國內外回報減去積存的一部分。

然而,您想要提供國內外銷售額的快速和輕鬆預測加上10個%,忽視國內外回報。 若要計算此值,您可以使用 RollupChildren 函式,以下列兩種方式之一:使用自定義成員屬性或搭配 IIf 函式。

使用自訂成員屬性

如果匯總計算是經常執行的作業,一種方法是建立成員屬性,以儲存將用於特定函式之每個子系的運算符。 下表顯示有效的一元運算符,並描述預期的結果。

算子 結果
+ total = total + current child
- total = total - 目前的子系
* total = total * current child
/ total = total / current child
~ 子系不會用於積存中。 忽略子系的值。

例如,可以建立稱為 SALES_OPERATOR 的成員屬性,並將下列一元運算符指派給該成員屬性,如下表所示。

父成員 子成員
淨銷售額 國內銷售(+)

國內退貨(~)

外國銷售(+)

外國回報(~)

有了這個新的成員屬性,下列 MDX 語句會快速且有效率地執行總銷售額估計作業(忽略國內外回報):

RollupChildren([Net Sales], [Net Sales].CurrentMember.Properties("SALES_OPERATOR")) * 1.1  

呼叫 函式時,會使用儲存在成員屬性中的運算符,將每個子系的值套用至總計。 會忽略國內外傳回的成員,而 rollupChildren 函式所傳回 匯總總計乘以 1.1。

使用If函式

如果範例作業不常見,或作業只套用至一個 MDX 查詢,IIf 函式可以搭配 RollupChildren 函式使用,以提供相同的結果。 下列 MDX 查詢提供與先前 MDX 範例相同的結果,但這樣做時不需要使用自定義成員屬性:

RollupChildren([Net Sales], IIf([Net Sales].CurrentMember.Properties("UNARY_OPERATOR") = "-", "~", [Net Sales].CurrentMember.Properties("UNARY_OPERATOR))) * 1.1  

MDX 語句會檢查子成員的一元運算符。 如果一元運算子用於減法(如國內外傳回成員的情況),則 IIf 函式會取代波浪號 (~) 一元運算符。 否則,IIf 函式會使用子成員的一元運算符。 最後,傳回的積存總額乘以1.1,以提供國內外總銷售額預測值。

另請參閱

操作數據 (MDX)