SCOPE 语句 (MDX)

将指定多维表达式 (MDX) 语句的作用域限制于指定的子多维数据集。

语法

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

参数

  • Subcube_Expression
    有效的 MDX 子多维数据集表达式。

  • MDX_Statement
    有效的 MDX 语句。

  • Common_Grain_Members
    有效的 MDX 语句,该语句的值为粒度相同的成员。

  • single_tuple
    单个元组。

注释

SCOPE 语句用于确定执行一个或多个 MDX 语句时会影响到的子多维数据集。除非 MDX 语句包含在 SCOPE 语句中,否则 MDX 语句的隐式作用域为整个多维数据集。

注意注意

SCOPE 语句会处理隐藏的成员。

无论 MDX Compatibility 如何设置,SCOPE 语句都会创建显示“空位置”的子多维数据集。例如,Scope( Customer.State.members ) 语句可以在不包含州的国家或地区中包括州,但在其他情况下会插入不可见的占位符成员。

在 SCOPE 语句中创建的计算成员和命名集不受 SCOPE 语句的影响。

示例

下例将在 Adventure Works 示例解决方案的 MDX 计算脚本中将当前作用域定义为 2005 会计年度的会计季度和销售配额度量值,再使用 ParallelPeriod 函数为当前作用域中的单元分配值。然后,该示例使用另一个 SCOPE 语句修改作用域,并使用 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 ;   

请参阅

其他资源