Можете да използвате hierarchy.levels.count, за да получите броя на нивата в йерархията, когато имате йерархия с неизвестен/променлив брой нива. Оттам можете да получите най-ниското ниво с функцията Нива. Трябва да извадите единица, защото това е позиция, базирана на нула.
[Group].[Group].Levels([Group].[Group].levels.count-1)
Можете също да направите това с Наследници. Вторият аргумент във функцията descendants е разстояние от посочения член, така че трябва да извадите 1 от броя на нивата. Ето една примерна заявка.
select {} on 0,
descendants([Group].[Group].[All], ([Group].[Group].levels.count - 1), SELF) on 1
from [Cube]
Една забележка: ако имате разкъсана йерархия (което предполагам, че имате, тъй като не знаете броя на нивата), това ще изтегли само членовете на най-ниското ниво, а не всички листа. Ако използвате hidememberif, за да скриете повтарящи се членове, така че те да не са техен собствен родител, това, от което наистина се нуждаете, са всички листа, които можете да посочите във функцията за наследници.
select {} on 0,
descendants([Group].[Group].[All], , LEAVES) on 1
from [Cube]
person
mmarie
schedule
02.12.2013