Freigeben über


MDX-Datenmanipulation – RollupChildren-Funktion

gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Die Funktion Multidimensional Expressions (MDX) RollupChildren rollt die untergeordneten Mitglieder eines Mitglieds auf, indem auf jedes untergeordnete Mitglied ein anderer unärer Operator angewendet wird, und gibt den Wert dieses Rollups als Zahl zurück. Der unäre Operator kann durch eine dem untergeordneten Element zugeordnete Eigenschaft bereitgestellt werden, oder der Operator kann ein Zeichenfolgenausdruck sein, der direkt der Funktion übergeben wird.

RollupChildren Funktionsbeispiele

Die Verwendung der Funktion RollupChildren in Multidimensional Expressions (MDX)-Anweisungen ist einfach zu erläutern, aber die Auswirkung dieser Funktion auf MDX-Abfragen kann breit reichen.

Die Auswirkung der RollupChildren-Funktion erfolgt in MDX-Abfragen, die zur selektiven Analyse vorhandener Cubedaten entwickelt wurden. Die folgende Tabelle enthält z. B. eine Liste untergeordneter Member für das übergeordnete Element "Nettoumsatz", wobei ihre unären Operatoren (dargestellt durch die eigenschaft UNARY_OPERATOR Member) in Klammern angezeigt werden.

Übergeordnetes Mitglied Kindmitglied
Nettoumsatz Inlandsverkäufe (+)

Inländische Rückgaben (-)

Auslandsverkäufe (+)

Fremdrückkehrer (-)

Das übergeordnete Nettoumsatzmitglied stellt derzeit einen Gesamtumsatz abzüglich der Brutto- und Auslandsumsatzwerte bereit, wobei die inländischen und ausländischen Renditen als Teil des Rollups subtrahiert werden.

Sie möchten jedoch eine schnelle und einfache Prognose für den inländischen und ausländischen Bruttoumsatz plus 10%bereitstellen, wobei die inländischen und ausländischen Renditen ignoriert werden. Um diesen Wert zu berechnen, können Sie die Funktion RollupChildren auf zwei Arten verwenden: mit einer benutzerdefinierten Membereigenschaft oder mit der Funktion IIf.

Verwenden einer benutzerdefinierten Mitglieder-Eigenschaft

Wenn die Rollup-Berechnung eine häufig ausgeführte Operation sein soll, besteht eine Methode darin, eine Mitgliedseigenschaft zu erstellen, die den Operator speichert, der für jedes Kindobjekt in einer bestimmten Funktion verwendet wird. In der folgenden Tabelle werden gültige unäre Operatoren angezeigt und das erwartete Ergebnis beschrieben.

Bediener Ergebnis
+ gesamt = gesamt + aktuelles Kind
- gesamt = gesamt - aktuelles Kind
* total = total * aktuelles Kind
/ total = total / aktuelles Kind
~ Das Kind wird im Rollup nicht verwendet. Der Wert des untergeordneten Elements wird ignoriert.

Beispielsweise könnte eine Membereigenschaft namens SALES_OPERATOR erstellt werden, und die folgenden unären Operatoren würden dieser Membereigenschaft zugewiesen, wie in der folgenden Tabelle dargestellt.

Übergeordnetes Mitglied Untergeordnetes Mitglied
Nettoumsatz Inlandsverkäufe (+)

Inländische Rückgaben (~)

Auslandsverkäufe (+)

Ausländische Rückgaben (~)

Mit dieser neuen Mitgliedereigenschaft würde die folgende MDX-Anweisung die Bruttoumsatzschätzung schnell und effizient durchführen, wobei ausländische und inländische Rückgaben ignoriert werden.

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

Wenn die Funktion aufgerufen wird, wird der Wert jedes Kind-Elements auf eine Gesamtsumme angewendet, wobei der in der Membereigenschaft gespeicherte Operator verwendet wird. Die Mitglieder für inländische und ausländische Rückgaben werden ignoriert, und der von der RollupChildren-Funktion zurückgegebene Rollup-Gesamtwert wird mit 1,1 multipliziert.

Verwenden der IIf-Funktion

Wenn der Beispielvorgang nicht häufig verwendet wird oder der Vorgang nur für eine MDX-Abfrage gilt, kann die Funktion IIf mit der Funktion RollupChildren verwendet werden, um dasselbe Ergebnis zu erzielen. Die folgende MDX-Abfrage stellt dasselbe Ergebnis wie das frühere MDX-Beispiel bereit, ohne jedoch auf die Verwendung einer benutzerdefinierten Membereigenschaft zurückgreifen zu müssen:

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

Die MDX-Anweisung untersucht den unären Operator des untergeordneten Elements. Wenn der unäre Operator für Subtraktion verwendet wird (wie bei den inländischen und ausländischen Rückgabemitgliedern), ersetzt die IIf-Funktion den unären Operator durch die Tilde (~). Andernfalls verwendet die IIf-Funktion den unären Operator des untergeordneten Mitglieds. Schließlich wird die zurückgegebene Rollupsumme mit 1,1 multipliziert, um den Prognosewert der inländischen und ausländischen Bruttoumsätze zu berechnen.

Siehe auch

Bearbeiten von Daten (MDX)