Partager via


Instruction SCOPE (MDX)

Limite l'étendue des instructions MDX (Multidimensional Expressions) spécifiées à un sous-cube spécifié.

Syntaxe

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>]

Arguments

  • Subcube_Expression
    Expression de sous-cube MDX valide.

  • MDX_Statement
    Instruction MDX valide.

  • Common_Grain_Members
    Instruction MDX valide qui évalue les membres qui ont la même granularité.

  • single_tuple
    Tuple unique.

Notes

L'instruction SCOPE détermine le sous-cube qui sera affecté par l'exécution d'une ou plusieurs instructions MDX. Sauf si une instruction MDX est insérée dans une instruction SCOPE, l'étendue implicite d'une instruction MDX est le cube tout entier.

[!REMARQUE]

Les membres cachés sont exposés dans les instructions SCOPE.

Les instructions SCOPE créent des sous-cubes qui exposent les « trous » quel que soit le paramètre MDX Compatibility . Par exemple, l'instruction Scope( Customer.State.members ) peut inclure les états de pays ou de régions qui n'ont pas d'états, mais dans lesquels des membres d'espace réservés autrement invisibles ont été insérés.

Les membres calculés et les jeux nommés créés dans le cadre d'une instruction SCOPE ne sont pas affectés par l'instruction SCOPE.

Exemple

L'exemple ci-dessous tiré du script de calcul MDX inclus dans la solution exemple Adventure Works, définit l'étendue actuelle en tant que trimestre fiscal de l'année fiscale 2005 et la mesure de quota du montant des ventes, puis assigne une valeur aux cellules dans l'étendue actuelle à l'aide de la fonction ParallelPeriod. L'exemple modifie ensuite l'étendue par le biais d'une autre instruction SCOPE, puis procède à une autre assignation à l'aide de la fonction 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 ;   

Voir aussi

Autres ressources