Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Funktion Multidimensional Expressions (MDX) RollupChildren [Script for Search and Replace] rollt die untergeordneten Elemente eines Elements zusammen, wendet einen anderen unären Operator auf jedes untergeordnete Element an und gibt den Wert dieses Rollups als Zahl zurück. Der unäre Operator kann von einer Membereigenschaft bereitgestellt werden, die dem untergeordneten Element zugeordnet ist, oder der Operator kann ein Zeichenfolgenausdruck sein, der direkt für die Funktion bereitgestellt wird.
RollupChildren-Funktionsbeispiele
Die Verwendung der RollupChildren Funktion 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 für die selektive Analyse vorhandener Cubedaten entwickelt wurden. Die folgende Tabelle enthält zum Beispiel eine Liste von untergeordneten Mitgliedern des übergeordneten Mitglieds "Net Sales", wobei deren unäre Operatoren (dargestellt durch die UNARY_OPERATOR-Membereigenschaft) in Klammern angezeigt werden.
| Übergeordnetes Mitglied | Kindermitglied |
|---|---|
| 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 RollupChildren Funktion auf eine von zwei Arten verwenden: mit einer benutzerdefinierten Membereigenschaft oder mit der IIf Funktion.
Verwenden einer individuell angepassten Mitgliedereigenschaft
Wenn es sich bei der Rollupberechnung um einen häufig ausgeführten Vorgang handelt, besteht eine Methode darin, eine Membereigenschaft zu erstellen, die den Operator speichert, der für jedes untergeordnete Element für eine bestimmte Funktion verwendet wird. In der folgenden Tabelle werden gültige unäre Operatoren angezeigt und das erwartete Ergebnis beschrieben.
| Bediener | Ergebnis |
|---|---|
| + | summe = summe + aktuelles Kind |
| - | summe = gesamt - aktuelles untergeordnetes Element |
| * | total = total * aktuelles Kind |
| / | total = total / aktuelles Kind |
| ~ | Das untergeordnete Element wird im Rollup nicht verwendet. Der Wert des Kindes wird ignoriert. |
Beispielsweise könnte eine Membereigenschaft namens SALES_OPERATOR erstellt werden, und ihr könnten die folgenden unären Operatoren zugewiesen werden, wie in der folgenden Tabelle gezeigt.
| Übergeordnetes Mitglied | Jungmitglied |
|---|---|
| Nettoumsatz | Inlandsverkäufe (+) Inländische Rückgaben (~) Auslandsverkäufe (+) Auslandsrückkehrer (~) |
Mit dieser neuen Membereigenschaft würde die folgende MDX-Anweisung den Bruttoumsatzschätzungsvorgang schnell und effizient durchführen (ausländische und inländische Rückgaben ignorieren):
RollupChildren([Net Sales], [Net Sales].CurrentMember.Properties("SALES_OPERATOR")) * 1.1
Wenn die Funktion aufgerufen wird, wird der Wert jedes untergeordneten Elements auf eine Summe angewendet, wobei der in der Membereigenschaft gespeicherte Operator verwendet wird. Die Elemente für inländische und ausländische Rückgaben werden ignoriert, und die von der RollupChildren Funktion zurückgegebene Rollupsumme wird mit 1,1 multipliziert.
Verwenden der IIf-Funktion
Wenn der Beispielvorgang nicht häufig vorkommt oder der Vorgang nur für eine MDX-Abfrage gilt, kann die IIf-Funktion zusammen mit der RollupChildren-Funktion 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 die Subtraktion verwendet wird (wie bei den inländischen und ausländischen Rückgabewerten), setzt die IIf Funktion den Tilde-Operator (~) anstelle des unären Operators ein. Andernfalls verwendet die IIf Funktion den unären Operator des untergeordneten Elements. Schließlich wird die zurückgegebene Rollupsumme mit 1,1 multipliziert, um den Prognosewert für inländische und ausländische Bruttoumsatze bereitzustellen.