MDX-Skripts – SCOPE
Beschränkt den Bereich angegebener MDX-Anweisungen (Multidimensional Expressions) auf einen angegebenen Teilcube.
Syntax
SCOPE(Subcube_Expression)
[ MDX_Statement ]
END SCOPE
Subcube_Expression ::=(Auxiliary_Subcube [, Auxiliary_Subcube,...n])
Auxiliary_Subcube ::=
Limited_Set
| Root([dimension_name])
| Leaves([dimension_name])
Limited_Set ::=
single_tuple
| member
| Common_Grain_Members
| hierarchy.members
| level.members
| {}
| Descendants
(
Member
, [level
[
, SELF
| AFTER
| BEFORE
| SELF_AND_AFTER
| SELF_AND_BEFORE
| SELF_BEFORE_AFTER
| LEAVES
]
)
[* <limited set>]
Argumente
Subcube_Expression
Ein gültiger MDX-Teilcubeausdruck.
MDX_Statement
Eine gültige MDX-Anweisung.
Common_Grain_Members
Eine gültige MDX-Anweisung, die zu Elementen derselben Granularität ausgewertet wird.
single_tuple
Ein einzelnes Tupel.
Bemerkungen
Die SCOPE-Anweisung bestimmt den Teilcube, auf den sich die Ausführung mindestens einer MDX-Anweisung auswirkt. Wenn eine MDX-Anweisung nicht in eine SCOPE-Anweisung eingeschlossen ist, besteht der implizite Bereich der MDX-Anweisung im gesamten Cube.
Hinweis
Ausgeblendete Elemente werden in SCOPE-Anweisungen verfügbar gemacht.
SCOPE-Anweisungen erstellen Teilcubes, die "Löcher" unabhängig von der MDX-Kompatibilitätseinstellung verfügbar machen. So kann z. B. die Anweisung Scope( Customer.State.members )
die Staaten in Ländern oder Regionen einschließen, die keine Staaten enthalten, für die jedoch unsichtbare Platzhalterelemente eingefügt wurden.
Berechnete Elemente und benannte Mengen, die in einer SCOPE-Anweisung erstellt wurden, sind von der SCOPE-Anweisung nicht betroffen.
Beispiel
Das folgende Beispiel definiert aus dem MDX-Berechnungsskript in der Adventure Works-Beispiellösung den aktuellen Bereich als Geschäftsquartal im Geschäftsjahr 2005 und das Kontingentmaß für Den Umsatzbetrag und weist dann den Zellen im aktuellen Bereich mithilfe der Funktion ParallelPeriod einen Wert zu. Anschließend ändert das Beispiel den Bereich mithilfe einer anderen SCOPE-Anweisung und führt dann eine weitere Zuweisung mit der Funktion This (MDX) aus.
Scope
(
[Date].[Fiscal Year].&[2005],
[Date].[Fiscal].[Fiscal Quarter].Members,
[Measures].[Sales Amount Quota]
) ;
This = ParallelPeriod
(
[Date].[Fiscal].[Fiscal Year], 1,
[Date].[Fiscal].CurrentMember
) * 1.35 ;
/*-- Allocate equally to months in FY 2002 -----------------------------*/
Scope
(
[Date].[Fiscal Year].&[2002],
[Date].[Fiscal].[Month].Members
) ;
This = [Date].[Fiscal].CurrentMember.Parent / 3 ;
End Scope ;
End Scope ;