Поделиться через


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