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