Instrução SCOPE (MDX)
Limita o escopo de instruções MDX especificadas a um subcubo especificado.
Sintaxe
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>]
Argumentos
Subcube_Expression
Uma expressão de subcubo do MDX válida.MDX_Statement
Uma instrução MDX válida.Common_Grain_Members
Uma instrução MDX que é avaliada como membros que tem o mesmo grão.single_tuple
Uma única tupla.
Comentários
A instrução SCOPE determina o subcubo que será afetado pela execução de uma ou mais instruções MDX. A menos que uma instrução MDX seja incluída em uma instrução SCOPE, o escopo implícito de uma instrução MDX é o cubo inteiro.
Observação |
---|
Membros escondidos estão expostos em instruções SCOPE. |
As instruções SCOPE criarão subcubos que expõem "intervalos", independentemente da configuração MDX Compatibility. Por exemplo, a instrução Scope( Customer.State.members ) pode incluir os estados nos países ou regiões que não contêm os estados, mas para os quais os membros de placeholder invisíveis foram inseridos.
Os membros calculados e os conjuntos nomeados criados em uma instrução SCOPE não são afetados por essa instrução.
Exemplo
O exemplo a seguir, a partir do script de cálculo do MDX na solução de exemplo Adventure Works, define o escopo atual como o trimestre fiscal no ano fiscal 2005 e a medida Cota do Valor de Vendas e, em seguida, atribui um valor às células no escopo atual, usando a função ParallelPeriod. O exemplo modifica o escopo usando outra instrução SCOPE e, em seguida, executa outra atribuição usando a função 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 ;