Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ограничивает область действия операторов заданных многомерных выражений (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.
Пример
Следующий пример, из скрипта расчёта MDX в примерном решении 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 ;