MDX-gegevensmanipulatie - RollupChildren Functie

Van toepassing op: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Met de Multidimensional Expressions (MDX) functie RollupChildren worden de kinderen van een member samengevoegd, waarbij een andere unaire operator op ieder kind wordt toegepast, en het resultaat van deze rollup als een getal geretourneerd. De unaire operator kan worden opgegeven door een lideigenschap die is gekoppeld aan het onderliggende lid, of de operator kan een tekenreeksexpressie zijn die rechtstreeks aan de functie wordt geleverd.

Voorbeelden van de functie RollupChildren

Het gebruik van de functie RollupChildren in MDX-instructies (Multidimensional Expressions) is eenvoudig uit te leggen, maar het effect van deze functie op MDX-query's kan breed zijn.

Het effect van de functie RollupChildren vindt plaats in MDX-query's die zijn ontworpen om selectieve analyse uit te voeren op bestaande kubusgegevens. De volgende tabel bevat bijvoorbeeld een lijst met onderliggende leden voor het bovenliggende lid Net Sales, met de unaire operatoren (vertegenwoordigd door de eigenschap UNARY_OPERATOR lid) die tussen haakjes worden weergegeven.

Hoofdlid Kindlid
Netto-omzet Binnenlandse verkoop (+)

Binnenlandse retournaties (-)

Buitenlandse verkoop (+)

Buitenlandse retournaties (-)

Het bovenliggende netto-omzetlid levert momenteel het totale bedrag van de netto-omzet min de bruto binnenlandse en buitenlandse verkoopwaarden, waarbij de binnenlandse en buitenlandse retouren worden afgetrokken als onderdeel van de optelsom.

U wilt echter een snelle en eenvoudige prognose bieden van de binnenlandse en buitenlandse brutoverkoop plus 10%, waarbij de binnenlandse en buitenlandse rendementen worden genegeerd. Als u deze waarde wilt berekenen, kunt u de functie RollupChildren op twee manieren gebruiken: met een aangepaste lideigenschap of met de functie IIf .

Een aangepaste lidgebruiksfunctie toepassen

Als de samentelberekening een vaak uitgevoerde bewerking moet zijn, moet u een lideigenschap maken waarin de operator wordt opgeslagen die voor elk onderliggend element voor een specifieke functie wordt gebruikt. In de volgende tabel worden geldige unaire operators weergegeven en wordt het verwachte resultaat beschreven.

Operator Resultaat
+ totaal = totaal + huidige kind
- totaal = totaal - huidig kind
* totaal = totaal * huidig kind
/ totaal = totaal / huidig kind
~ Het onderliggende element wordt niet gebruikt in het samenvouwen. De waarde van het kind wordt genegeerd.

Een lideigenschap met de naam SALES_OPERATOR kan bijvoorbeeld worden gemaakt en de volgende unaire operators worden toegewezen aan die lideigenschap, zoals wordt weergegeven in de volgende tabel.

Ouderlid Kindlid
Netto-omzet Binnenlandse verkoop (+)

Binnenlandse retouren (~)

Buitenlandse verkoop (+)

Buitenlandse retouren (~)

Met deze nieuwe ledeneigenschap zou de volgende MDX-instructie de brutoverkoopschatting snel en efficiënt uitvoeren (waarbij buitenlandse en binnenlandse retouren worden genegeerd).

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

Wanneer de functie wordt aangeroepen, wordt de waarde van elk kindelement toegepast op een totaal met behulp van de operator die is opgeslagen in de eigenschap van het lid. De leden voor binnenlandse en buitenlandse retouren worden genegeerd en het totaal dat wordt geretourneerd door de functie RollupChildren wordt vermenigvuldigd met 1,1.

De IIf-functie gebruiken

Als de voorbeeldbewerking niet gebruikelijk is of als de bewerking slechts van toepassing is op één MDX-query, kan de functie IIf worden gebruikt met de functie RollupChildren om hetzelfde resultaat te bieden. De volgende MDX-query biedt hetzelfde resultaat als het eerdere MDX-voorbeeld, maar doet dit zonder gebruik te maken van een aangepaste lideigenschap:

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

De MDX-instructie onderzoekt de unaire operator van het kindlid. Als de unaire operator wordt gebruikt voor aftrekken (zoals in het geval van de binnenlandse en buitenlandse retourleden), vervangt de functie IIf de tilde (~) unaire operator. Anders gebruikt de functie IIf de unaire operator van het kindlid. Ten slotte wordt het geretourneerde samenteltotaal vervolgens vermenigvuldigd met 1,1 om de binnenlandse en buitenlandse brutoverkoopprognosewaarde te bieden.

Zie ook

Gegevens bewerken (MDX)