Получить уровень в 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]})}
Другие вопросы по тегам