Innere und äußere Auswahlformeln
Auswahlformeln können inner- und außerhalb von Aggregierungsfunktionen verwendet werden und sind in geschweifte Klammern eingeschlossen.
Wenn Sie eine Auswahlformel innerhalb einer Aggregierungsfunktion verwenden, kann dies so aussehen:
Beispiel: Innere Auswahlformel
Sum( {$<Year={2021}>} Sales )
Verwenden Sie eine Auswahlformel außerhalb der Aggregierungsfunktion, wenn Sie Formeln mit mehreren Aggregierungen haben und vermeiden möchten, die gleiche Auswahlformel in jede Aggregierungsfunktion zu schreiben.
Wenn Sie eine äußere Auswahlformel verwenden, muss sie am Beginn des Geltungsbereichs platziert werden.
Beispiel: Äußere Auswahlformel
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Wenn Sie eine Auswahlformel außerhalb der Aggregierungsfunktion verwenden, können Sie sie auch auf vorhandene Master-Kennzahlen anwenden.
Beispiel: Auf Master-Kennzahl angewendete äußere Auswahlformel
{<Year={2021}>} [Master Measure]
Eine Auswahlformel, die außerhalb von Aggregierungsfunktionen verwendet wird, wirkt sich auf die ganze Formel aus, es sei denn, sie wird in Klammern eingeschlossen. In diesem Fall definieren die Klammern den Geltungsbereich. In dem folgenden Beispiel für einen lexikalischen Geltungsbereich wird die Auswahlformel nur auf die Aggregierung innerhalb der Klammern angewandt.
Beispiel: Lexikalischer Geltungsbereich
( {<Year={2021}>} Sum(Amount) / Count(distinct Customer) ) – Avg(CustomerSales)
Regeln
Lexikalischer Geltungsbereich
Die Auswahlformel wirkt sich auf die ganze Formel aus, es sei denn, sie ist in Klammern eingeschlossen. In diesem Fall definieren die Klammern den lexikalischen Geltungsbereich.
Position
Die Auswahlformel muss am Anfang des lexikalischen Geltungsbereichs platziert werden.
Kontext
Der Kontext ist die Auswahl, die für die Formel relevant ist. Traditionell war der Kontext immer der Standardzustand der aktuellen Auswahl. Wenn ein Objekt jedoch auf alternative Zustände festgelegt ist, ist der Kontext der alternative Zustand der aktuellen Auswahl.
Sie können einen Kontext auch in Form einer äußeren Auswahlformel definieren.
Erben
Innere Auswahlformeln haben Vorrang vor äußeren Auswahlformeln. Wenn die innere Auswahlformel einen Identifikator für Auswahlformeln enthält, ersetzt sie den Kontext. Andernfalls werden der Kontext und die Auswahlformel zusammengeführt.
-
{$<SetExpression>}: Überschreibt die äußere Auswahlformel.
-
{<SetExpression>}: Wird mit der äußeren Auswahlformel zusammengeführt.
Elementsatzzuweisung
Die Elementsatzzuweisung bestimmt, wie die beiden Auswahlen zusammengeführt werden. Wenn ein normales Gleichheitszeichen verwendet wird, hat die Auswahl in der inneren Auswahlformel Vorrang. Andernfalls wird der implizite Operator für Auswahlformeln verwendet.
-
{<Field={value}>}: Diese innere Auswahl ersetzt alle äußeren Auswahlen in “Field”.
-
{<Field+={value}>}: Diese innere Auswahl wird mit der äußeren Auswahl in “Field” zusammengeführt, wobei der Verbindungsoperator verwendet wird.
-
{<Field*={value}>}: Diese innere Auswahl wird mit der äußeren Auswahl in “Field” zusammengeführt, wobei der Schnittoperator verwendet wird.
Erben in mehreren Schritten
Das Erben kann in mehreren Schritten stattfinden. Beispiele:
-
Aktuelle Auswahl → Sum(Amount)
Die Aggregierungsfunktion verwendet den Kontext, in diesem Fall die aktuelle Auswahl.
-
Aktuelle Auswahl → {<Set1>} Sum(Amount)
Set1 erbt von der aktuellen Auswahl, und das Ergebnis ist der Kontext für die Aggregierungsfunktion.
-
Aktuelle Auswahl → {<Set1>} ({<Set2>} Sum(Amount))
Set2 erbt von Set1, der wiederum von der aktuellen Auswahl erbt, und das Ergebnis ist der Kontext für die Aggregierungsfunktion.
Die Funktion Aggr()
Die Funktion Aggr() erstellt eine verschachtelte Aggregierung, die zwei unabhängige Aggregierungen enthält. Im Beispiel unten wird Count() für jeden Wert von Dim berechnet, und das sich ergebende Array wird anhand der Funktion Sum() aggregiert.
Beispiel:
Sum(Aggr(Count(X),Dim))
Count() ist die innere Aggregierung und Sum() ist die äußere Aggregierung.
-
Die innere Aggregierung erbt keinen Kontext von der äußeren Aggregierung.
-
Die innere Aggregierung erbt den Kontext von der Funktion Aggr(), die eine Auswahlformel enthalten kann.
-
Sowohl die Funktion Aggr() als auch die äußere Aggregierungsfunktion erben den Kontext von einer äußeren Auswahlformel.