Инструкция SCOPE (многомерные выражения)
Ограничивает область заданных инструкций многомерных выражений указанным вложенным кубом.
Синтаксис
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_Statement
Допустимая инструкция многомерных выражений.Common_Grain_Members
Допустимая инструкция многомерных выражений, принимающая значение элементов с одинаковой детализацией.single_tuple
Один кортеж.
Замечания
Инструкция SCOPE определяет вложенный куб, на который будет распространяться действие одной или нескольких инструкций многомерных выражений. Если инструкция многомерных выражений не ограничена инструкцией SCOPE, то неявной областью инструкции является весь куб.
![]() |
---|
Скрытые элементы появляются в инструкциях SCOPE. |
Инструкции SCOPE создают вложенные кубы, имеющие «пустоты», независимо от значения аргумента MDX Compatibility. Например, инструкция Scope( Customer.State.members ) может включать штаты страны или регионы, которые не содержат штатов, но для которых вставлены иначе невидимые местозаполнители.
Действие инструкции SCOPE не распространяется на вычисляемые элементы и именованные наборы, созданные в этой инструкции SCOPE.
Пример
В следующем примере из сценария вычисления многомерного выражения в образце решения Adventure Works текущая область определяется как финансовый квартал 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 ;