我使用Pentaho-CE 4.8和Saiku插件2.6,后者使用Mondrian 3.6.5。
在Mondrian架构中,我使用计算成员定义了一个虚拟多维数据集,该成员包含两个虚拟度量。这些虚拟测量来自两个具有两个共同维度的立方体。其中一个Cubes有一个退化的Dimension,它也用在虚拟Cube中。
我想通过维度对计算成员进行分组,其中只有一个虚拟指标与之相关,但此时我失败了。
伪模式:
<Time Dimension>
<Cube 1>
<Dimension Usage: "Time Dimension">
<Degenerated Dimension>
<Measure 1>
</Cube1>
<Cube 2>
<Dimension Usage: "Time Dimension">
<Measure 2>
</Cube 2>
<Virtual Cube>
<Virtual Measure "Cube 1 Measure 1">
<Virtual Measure "Cube 2 Measure 2">
<Virtual Dimension "Time Dimension">
<Virtual Dimension "Cube 1 Degenerated Dimension"
<Calculated Member: [Virtual Measure "Cube 1 Measure 1"] / [Virtual Measure "Cube 2 Measure 2"]
</Virtual Cube>
在saiku中,只要我不使用“Cube 1 Degenerated Dimension”,我就会获得虚拟和计算度量的结果。如果我在Rows / Colums上使用它或作为过滤器,则只显示<Virtual Measure "Cube 1 Measure 1">
的值,因为此Measure来自与该维度相关的立方体。
我是否有办法/解决方法如何实现这个维度的CM?因为理论上蒙德里安可以做到以下几点:
答案 0 :(得分:0)
我找到了解决问题的方法:
使用ValidMeasure()函数如下:
<Calculated Member: [Virtual Measure "Cube 1 Measure 1"] / ValidMeasure([Virtual Measure "Cube 2 Measure 2"])>
有效测量函数将告诉Mondrian,此测量具有可以忽略的非连接尺寸。测量2将与其他应用的尺寸连接,并且将获得一个值,然后可以将其用于计算。