CurrentMember (многомерные выражения)
Возвращает текущий элемент указанной иерархии во время итерации.
Синтаксис
Hierarchy_Expression.CurrentMember
Аргументы
- Hierarchy_Expression
Допустимое многомерное выражение, возвращающее иерархию.
Замечания
Текущим называется элемент, над которым выполняется операция на данном шаге итерации по набору элементов иерархии. Функция CurrentMember возвращает этот элемент.
Важно! |
---|
Если измерение содержит единственную видимую иерархию, на нее можно сослаться по имени измерения или по имени иерархии, поскольку имя измерения разрешается в единственную видимую иерархию. Например, многомерное выражение Measures.CurrentMember является допустимым, поскольку измерение Measures разрешается в единственную видимую иерархию. |
Примеры
В следующем запросе показано использование функции Currentmember для поиска текущего элемента из иерархий по осям столбцов, строк и среза:
WITH MEMBER MEASURES.CURRENTDATE AS
[Date].[Calendar].CURRENTMEMBER.NAME
MEMBER MEASURES.CURRENTPRODUCT AS
[Product].[Product Categories].CURRENTMEMBER.NAME
MEMBER MEASURES.CURRENTMEASURE AS
MEASURES.CURRENTMEMBER.NAME
MEMBER MEASURES.CURRENTCUSTOMER AS
[Customer].[Customer Geography].CURRENTMEMBER.NAME
SELECT
[Product].[Product Categories].[Category].MEMBERS
*
{MEASURES.CURRENTDATE, MEASURES.CURRENTPRODUCT,MEASURES.CURRENTMEASURE, MEASURES.CURRENTCUSTOMER}
ON 0,
[Date].[Calendar].MEMBERS
ON 1
FROM [Adventure Works]
WHERE([Customer].[Customer Geography].[Country].&[Australia])
Изменяется текущий элемент иерархии, используемой по оси в запросе. Поэтому текущий элемент других иерархий того же измерения, которые не используются по оси, также может измениться; такое поведение называется «автоматическим существованием», дополнительные сведения о нем см. в разделе Ключевые понятия многомерных выражений (многомерные выражения). Например, приведенный ниже запрос показывает, как текущий элемент иерархии «Календарный год» измерения «Дата» изменяется вместе с текущим элементом иерархии «Календарь», когда последняя отображается по оси строк:
WITH MEMBER MEASURES.CURRENTYEAR AS
[Date].[Calendar Year].CURRENTMEMBER.NAME
SELECT
{MEASURES.CURRENTYEAR}
ON 0,
[Date].[Calendar].MEMBERS
ON 1
FROM [Adventure Works]
Функция CurrentMember очень важна для вычислений с учетом контекста запроса, в котором они используются. В следующем примере из куба Adventure Works возвращается количество заказов по каждому продукту и процентная доля заказов по категориям и моделям. Функция CurrentMember идентифицирует продукт, количество заказов по которому используется в вычислении.
WITH
MEMBER [Measures].[Order Percent by Category] AS
CoalesceEmpty
(
([Product].[Product Categories].CurrentMember,
Measures.[Order Quantity]) /
(
Ancestor
( [Product].[Product Categories].CurrentMember,
[Product].[Product Categories].[Category]
), Measures.[Order Quantity]
), 0
), FORMAT_STRING='Percent'
SELECT
{Measures.[Order Quantity],
[Measures].[Order Percent by Category]} ON COLUMNS,
{[Product].[Product].Members} ON ROWS
FROM [Adventure Works]
WHERE {[Date].[Calendar Year].[Calendar Year].&[2003]}