我有以下MDX查询:

SELECT {[MEASURES].[MEASURE_VALUE]} ON COLUMNS,
     {
        {[DIMENSION_A].[HIERARCHY_1]},
        {[DIMENSION_A].[HIERARCHY_2]}
    }
       ON ROWS
FROM [MY_CUBE]



如预期的那样,我得到2个值,每个层次结构一个。

问题:我希望有一个值代表从上面的查询中获得的两个值的总和。我不知道该怎么做,我尝试了以下方法

SELECT {[MEASURES].[MEASURE_VALUE]} ON COLUMNS,
     {
        {[DIMENSION_A].[HIERARCHY_1] * [DIMENSION_A].[HIERARCHY_2]}
    }
       ON ROWS
FROM [MY_CUBE]


但是我得到了这个错误:
Caused by: mondrian.olap.MondrianException: Mondrian Error:Tuple contains more than one member of hierarchy '[DIMENSION_A.HIERARCHY_2]'.

我对Mondrian不太熟悉,通过阅读文档,您似乎只能交叉连接不同的维度,而不能交叉连接同一维度的层次结构。以一种SQL方式并给出一个非常简单的上下文,我相信它等同于WHERE子句,例如:

WHERE DIMENSION_A.HIERARCHY = HIERARCHY_1 OR DIMENSION_A.HIERARCHY = HIERARCHY_2

最佳答案

您可以使用.where子句。请参考以下网址以获取详细信息:
Where condition in Mondrian

关于java - 如何使用Mondrian汇总一个维的多个层次结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57693022/

10-10 14:16