MDX CurrentMember对计算成员的评估 - 奇怪的结果

时间:2012-10-25 11:51:23

标签: mdx

我正在使用SQL Server Analysis Services。

我有一个计算成员,现在,只是这样做:

[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME")

以前,我刚写过[MyDimension].[MyOnlyHierarchy].CurrentMember.UniqueName。无论如何它们应该是一样的。

现在,我使用SQL事件探查器来查看我的应用程序发出的查询。对于[MyDimension].[MyOnlyHierarchy]中一个简单的计算成员,它只是汇总给不同的成员,比如ID为401和402,我得到了这个结果:

[MyDimension].[MyOnlyHierarchy].&[401][MyDimension].[MyOnlyHierarchy].&[402]

换句话说,就好像AS评估基础成员并连接结果,而不是给我计算成员的唯一名称......

对我来说真的很奇怪的是,当我采用原始查询时,并在前面添加以下内容:

WITH MEMBER [Measures].[GiveMeCalculatedMemberUniqueName]
AS
(
[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME")
)

......其余的查询

我使用第二个测量得到了CORRECT结果!上下文是相同的(至少对我来说)。一切都是一样的...然而,在项目文件中声明的度量给出了与此内联计算成员不同的结果。

这里发生了什么?注意,我已经重新部署了10000次,并且我已经检查了服务器上的多维数据集中的实际定义以及所有内容。这对我来说没有意义。

2 个答案:

答案 0 :(得分:1)

根据求解顺序评估计算。可能是因为你把它移动了,解决顺序应该如何工作它给你正确的结果。我有一个关于解决订单here的小博客,但互联网上还有更多文章。

HTH

答案 1 :(得分:0)

好笑......我已经坐了大约2-3个小时,探索每一个想法;然后,在我发布这个问题后,我决定再尝试一件事:

将计算成员定义移动到项目中计算成员脚本文件的底部。

现在可以得到正确的结果。