限制指定的多维表达式(MDX)语句的范围为指定的子立方体。
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>]
Arguments
Subcube_Expression
一个有效的MDX子立方体表达式。
MDX_Statement
一个有效的MDX陈述。
Common_Grain_Members
一个有效的MDX语句,评估给具有相同纹理的成员。
single_tuple
一个元组。
Remarks
SCOPE 语句确定运行一个或多个 MDX 语句时将受影响的子立方体。 除非MDX语句被框架在SCOPE语句中,否则MDX语句的隐含作用域就是整个立方体。
注释
隐藏成员会在SCOPE语句中被揭露。
SCOPE 语句会创建子立方体,暴露“漏洞”,无论 MDX 兼容性 设置如何。 例如,陈述 Scope( Customer.State.members )可以包含那些不包含州的国家或地区的州,但插入了原本看不见的占位符成员。
在SCOPE语句中创建的计算成员和命名集不受SCOPE语句影响。
Example
以下示例来自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 ;