使用 Mondrian 在 MDX 查询中获取每个轴的级别
Posted
技术标签:
【中文标题】使用 Mondrian 在 MDX 查询中获取每个轴的级别【英文标题】:Get Level in MDX Query for each axis with Mondrian 【发布时间】:2013-03-31 07:18:57 【问题描述】:使用 Mondrian,我想在 MDX 查询中为每个轴获取 Level。
例如:
在列上选择非空 Hierarchize([Product].[Product Family].Members)
NON EMPTY CrossJoin([Time].[Quarter].Members, [Store].[Store Name].Members) ON ROWS
来自 [销售]
WHERE Hierarchize([Measures].[Unit Sales])
预期结果是:
列:[产品].[产品系列]
ROWS : [时间].[季度], [商店].[商店名称]
最近我使用了这个代码:
axes[i].getSet().getType().getLevel()
它适用于 COLUMNS 轴,但不适用于 ROWS 轴。 我想这是由 ROWS 轴中的 arity 超过 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])
【讨论】:
感谢您的回复!无论如何,查询已经给出,所以我不应该修改它。我只需要提取每个轴中每个元素的级别信息。以上是关于使用 Mondrian 在 MDX 查询中获取每个轴的级别的主要内容,如果未能解决你的问题,请参考以下文章