【问题标题】:MDX Calculated Member CrossJoin questionMDX 计算成员 CrossJoin 问题
【发布时间】:2011-01-05 05:46:13
【问题描述】:

我有一个包含以下计算成员的 MDX 查询:

with member [Measures].[BBOX] as
Count(
    Filter(
        CrossJoin([Dim Response].[Response ID].Children, [Dim Question].[Question Text].Children),
        [Measures].[Question Bottom Box] > 0
    )
)

这个想法是我想要一个维度的两个成员的组合计数。 (如果我的 MDX 词汇量有点偏,请原谅我)。它也基于一些标准。

查询的其余部分如下所示:

select 
{({[Measures].[TBOX], [Measures].[BBOX]}, 
[Dim Product].[Category Name].&[Office])} on columns,
{[Dim Question].[Question Text].Members} on rows 
from H1_FY10_Revised
where ({[Dim Question].[Category Name].&[Partner]}, 
{[Dim Subsidiary].[Subsidiary Alias Name].&[Germany]})

我的问题是:主查询(where 子句)中发生的数据切片是否转换为计算成员?从计算成员返回的数据与主查询中的轴之间是否存在任何类型的隐式连接?

或者换一种说法:计算成员中的交叉联接是否在主查询的上下文中执行?

【问题讨论】:

  • 我现在觉得很傻。我相信我找到了问题所在。包含查询上下文的方法是使用 .CurrentMember 而不是 .Member 或 .Children。这样我就可以在查询的上下文中获得适当的成员。啊MDX ...
  • 您应该将其作为答案发布在下面。
  • Ryan,将您的评论发布为 anwser,以便将其作为解决方案进行检查。
  • @Ryan,如果你要去,你现在应该回答这个问题,而赏金仍在等待中

标签: olap mdx cubes


【解决方案1】:

CrossJoin 的评估不依赖于上下文,但 Filter 函数会。

计算成员在查询上下文中进行评估,但计算成员可能具有恒定值,因为:

  • [Dim Response].[Response ID].Children 等效于 [Dim Response].[Response ID].DefaultMember.Children(请参阅MSDN)。
  • [Dim Question].[Question Text].Children 等价于[Dim Question].[Question Text].DefaultMember.Children

所以CrossJoin 的结果不依赖于切片器。只有[Measures].[Question Bottom Box] 的值取决于切片器。

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多