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


DrilldownLevel (многомерные выражения)

Детализирует углублением элементы набора на один уровень ниже самого нижнего уровня, представленного в наборе, или на один уровень ниже заданного по желанию уровня элемента, представленного в наборе.

Синтаксис

Level expression syntax
DrilldownLevel(Set_Expression [ , Level_Expression ] )

Numeric expression syntax
DrilldownLevel(Set_Expression [ , ,Index} ] )

Аргументы

  • Set_Expression
    Допустимое многомерное выражение, возвращающее набор.

  • Level_Expression
    Допустимое многомерное выражение, возвращающее уровень.

  • Index
    Допустимое числовое выражение, указывающее количество иерархий, которые необходимо детализировать углублением в наборе.

Замечания

Функция DrilldownLevel возвращает набор дочерних элементов в иерархическом порядке на основе элементов указанного набора. Порядок следования исходных элементов указанного набора сохраняется, однако все дочерние элементы, входящие в результирующий набор функции, следуют непосредственно за своим родительским элементом.

Если выражение уровня указано, функция создает набор в иерархическом порядке, извлекая потомков только элементов указанного уровня. Если выражение уровня указано, но на этом уровне в указанном наборе элементы отсутствуют, функция возвращает указанный набор.

Если значение индекса указано, функция создает набор в иерархическом порядке, получая потомков только тех элементов, которые находятся на следующем наиболее низком уровне указанной иерархии (на которую ссылается указанный набор) на основе начинающегося с нуля индекса.

Если ни выражение уровня, ни значение индекса не указаны, функция создает набор в иерархическом порядке, извлекая потомков только тех элементов, которые находятся на следующем самом низком уровне первого измерения, на которое ссылается указанный набор.

Примеры

В следующем примере при помощи функций DrilldownLevel и Countfunction подсчитывается количество товаров в измерении Product.

Count(DrilldownLevel ( 
   [Product].[Product].[Product]))

В следующем примере с помощью синтаксиса числового выражения выполняется углубленная детализация внутри первой иерархии Customer Geography.

SELECT DRILLDOWNLEVEL
   ( {[Customer].[Customer Geography].[Country].&[Canada]} * {[Customer].[Gender].[All Customers]},,0)
   ON 0
FROM [Adventure Works]

В следующем примере с помощью числового выражения выполняется углубленная детализация внутри второй иерархии Gender.

SELECT DRILLDOWNLEVEL
   ( {[Customer].[Customer Geography].[Country].&[Canada]} * {[Customer].[Gender].[All Customers]},,1)
   ON 0
FROM [Adventure Works]

В следующем примере возвращается количество посредников, продажи которых снизились по сравнению с предыдущим периодом, основываясь на выбранных пользователем значениях элемента State-Province, вычисленных с помощью функции Aggregate. Функции Hierarchize и DrilldownLevel возвращают величины падения продаж для категорий продуктов в измерении Product. Функция DrilldownLevel применяется для детализации углублением следующего самого низкого уровня иерархии атрибута Product (поскольку уровень не указан).

WITH MEMBER Measures.[Declining Reseller Sales] AS 
   Count(
      Filter(
         Existing(Reseller.Reseller.Reseller), 
            [Measures].[Reseller Sales Amount] < ([Measures].[Reseller Sales Amount],
            [Date].Calendar.PrevMember)
            )
         )
MEMBER [Geography].[State-Province].x AS 
   Aggregate ( 
      {[Geography].[State-Province].&[WA]&[US], 
      [Geography].[State-Province].&[OR]&[US] } 
         )
SELECT NON EMPTY Hierarchize (
   AddCalculatedMembers (
      {DrilldownLevel ({[Product].[All Products]})}
         )   )
        DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS 
FROM [Adventure Works]
WHERE ([Geography].[State-Province].x, 
    [Date].[Calendar].[Calendar Quarter].&[2003]&[4],
    [Measures].[Declining Reseller Sales])