CalculatedMember公式忽略当前查询上下文

时间:2015-03-11 16:55:08

标签: mdx pentaho mondrian

Pentaho 5.1.2.1.137

我已经使用包含3个级别的层次结构定义了一个维度:企业,部门,商店。 在我的立方体中,我有一个CalculatedMember,它计算该层次结构当前成员的商店数量。它看起来像这样:

<CalculatedMember name="Store count" dimension="Measures">
  <Formula>Count(Descendants([Location.Location].CurrentMember, [Store]))</Formula>
</CalculatedMember>

......这个工作正常,直到......

我尝试生成一个报告,其中我设置了“分区包括分区1”的过滤器。 如果报表包含Enterprise,Division和Store计数列,则此方法有效,但如果报表仅包含Enterprise和Store计数列,则不行。在这种情况下,即使分区1中有5个商店,商店计数也会设置为0。

我无法弄清楚如何使公式考虑当前的查询上下文(如果这确实是问题)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的查询不会点击Division,因为在您的公式中您引用了[Location.Location].CurrentMember,这意味着如果在其他轴上没有指定Division级别,您将无法获得结果

您可以修改公式以始终使用最低级别,并添加EXISTING关键字,这将强制服务器使用当前过滤上下文:

Count(EXISTING [Location.Location].[Store].members)