MDX-datamanipulering – RollupChildren-funktion

Gäller för: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Funktionen Multidimensional Expressions (MDX) RollupChildren samlar ihop underordnade till en medlem, tillämpar en annan unary-operator på varje underordnad och returnerar värdet för den här sammanslagningen som ett tal. Unary-operatorn kan anges av en medlemsegenskap som är associerad med den underordnade medlemmen, eller så kan operatorn vara ett stränguttryck som tillhandahålls direkt till funktionen.

Exempel på rollupChildren-funktion

Användningen av funktionen RollupChildren i MDX-instruktioner (Multidimensional Expressions) är enkel att förklara, men effekten av den här funktionen på MDX-frågor kan vara omfattande.

Effekten av funktionen RollupChildren inträffar i MDX-frågor som är utformade för att utföra selektiv analys på befintliga kubdata. Följande tabell innehåller till exempel en lista över underordnade medlemmar för den överordnade "Nettoomsättning"-medlemmen, med deras unära operatorer (representerade av medlemsegenskapen UNARY_OPERATOR) som visas inom parenteser.

Förälder medlem Underordnad medlem
Nettoomsättning Inhemsk försäljning (+)

Inhemsk avkastning (-)

Utländsk försäljning (+)

Utländska returer (-)

Den överordnade nettoförsäljningsmedlemmen tillhandahåller för närvarande en total nettoförsäljning minus bruttovärdet för inhemsk och utländsk försäljning, där den inhemska och utländska avkastningen subtraheras som en del av sammanslagningen.

Du vill dock ge en snabb och enkel prognos för inhemsk och utländsk bruttoförsäljning plus 10%, och ignorera den inhemska och utländska avkastningen. Om du vill beräkna det här värdet kan du använda funktionen RollupChildren på något av två sätt: med en anpassad medlemsegenskap eller med funktionen IIf .

Använda ett anpassat medlemsattribut

Om sammanslagningsberäkningen är en operation som utförs ofta kan en metod vara att skapa en medlemsegenskap som lagrar operatorn som ska användas för varje barn i en specifik funktion. I följande tabell visas giltiga unary-operatorer och det förväntade resultatet beskrivs.

Operator Result
+ total = total + nuvarande child
- total = total - nuvarande barn
* total = total * nuvarande element
/ total = total / nuvarande barn
~ Underordnad enhet används inte i sammanställningen. Barnets värde ignoreras.

En medlemsegenskap med namnet SALES_OPERATOR kan till exempel skapas och följande unary-operatorer tilldelas den medlemsegenskapen enligt följande tabell.

Överordnad medlem Barnmedlem
Nettoomsättning Inhemsk försäljning (+)

Inhemsk avkastning (~)

Utländsk försäljning (+)

Utländska returer (~)

Med den här nya medlemsegenskapen skulle följande MDX-instruktion utföra bruttoförsäljningsuppskattningsåtgärden snabbt och effektivt (ignorera utländsk och inhemsk avkastning):

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

När funktionen anropas, appliceras värdet för varje barn på en summa med hjälp av den operator som lagras i medlemsegenskapen. Medlemmarna för inhemska och utländska returer ignoreras och sammanslagningssumman som returneras av funktionen RollupChildren multipliceras med 1,1.

Använda IIf-funktionen

Om exempelåtgärden inte är vanlig eller om åtgärden endast gäller för en MDX-fråga kan IIf-funktionen användas med funktionen RollupChildren för att ge samma resultat. Följande MDX-fråga ger samma resultat som det tidigare MDX-exemplet, men gör det utan att använda en anpassad medlemsegenskap:

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

MDX-instruktionen undersöker barnmedlemmens unära operator. Om den unary operatorn används för subtraktion (som i fallet med inhemska och utländska returnerar medlemmar), ersätter funktionen IIf tilde (~) unary operator. I annat fall använder IIf-funktionen den underordnade medlemmens unary-operator. Slutligen multipliceras den returnerade sammanslagningssumman med 1,1 för att ange det inhemska och utländska bruttoförsäljningsprognosvärdet.

Se även

Manipulering av data (MDX)