Scripting MDX - SCOPE
Limita l'ambito delle istruzioni MDX (Multidimensional Expression) specificate a un sottocubo specifico.
Sintassi
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>]
Argomenti
Subcube_Expression
Espressione di sottocubo MDX valida.
MDX_Statement
Istruzione MDX valida.
Common_Grain_Members
Istruzione MDX valida che restituisce i membri allo stesso livello di dettaglio.
single_tuple
Una tupla singola.
Osservazioni:
L'istruzione SCOPE determina il sottocubo che interessato dall'esecuzione di una o più istruzioni MDX. Se l'istruzione MDX non è racchiusa all'interno di un'istruzione SCOPE, il suo ambito implicito è l'intero cubo.
Nota
In una istruzione SCOPE i membri nascosti vengono esposti.
Le istruzioni SCOPE creeranno sottocubo che espongono "buchi" indipendentemente dall'impostazione di compatibilità MDX. L'istruzione Scope( Customer.State.members )
, ad esempio, può includere gli stati per aree o paesi che non contengono stati ma al posto dei quali sono stati inseriti membri segnaposto altrimenti invisibili.
L'istruzione SCOPE non ha effetto sui membri calcolati e sui set denominati creati all'interno dell'istruzione SCOPE.
Esempio
L'esempio seguente, dallo script di calcolo MDX nella soluzione di esempio Adventure Works, definisce l'ambito corrente come trimestre fiscale nell'anno fiscale 2005 e la misura quota importo vendite e quindi assegna un valore alle celle nell'ambito corrente usando la funzione ParallelPeriod . L'esempio modifica quindi l'ambito usando un'altra istruzione SCOPE e quindi esegue un'altra assegnazione usando la funzione This (MDX).
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 ;