Получить уровень в MDX Query для каждой оси с Mondrian
Используя Mondrian, я хотел бы получить уровень в запросе MDX для каждой оси.
Например:
ВЫБЕРИТЕ NON EMPTY {Hierarchize({[Product].[Семейство продуктов].Members})} НА КОЛОННАХ
NON EMPTY CrossJoin([Время]. [Квартал]. Члены, [Магазин]. [Имя магазина]. Члены) ON ROWS
ОТ [Продажи]
ГДЕ {Иерархия ({[Показатели]. [Продажи в единицах]})}
Ожидаемые результаты:
КОЛОННЫ: [Продукт]. [Семейство продуктов]
ROWS: [Время]. [Квартал], [Магазин]. [Название магазина]
Недавно я использовал этот код:
Оси [I].getSet(). GetType().getLevel()
Он работал для оси COLUMNS, но не работает для оси ROWS. Я предполагаю, что это вызвано арностью по оси ROWS, которая больше 1.
Есть ли способ получить уровень по оси, арность которой больше 1?
Благодарю.
1 ответ
Как насчет этого:
with
member [Product].[Product Family].[Row current member] as
[Time].[Quarter].currentmember.name + ', ' +
[Store].[Store Name].currentmember.name
затем в предложении select включите член в ось столбца:
SELECT NON EMPTY Hierarchize({[Product].[Product Family].Members,
[Product].[Product Family].[Row current member]}) ON COLUMNS
NON EMPTY CrossJoin([Time].[Quarter].Members, [Store].[Store Name].Members) ON ROWS
FROM [Sales]
WHERE {Hierarchize({[Measures].[Unit Sales]})}