0

我有两个 MDX 查询(其基础来自 Excel 的 CUBEVALUE() 函数)。我希望这两个查询的输出是相同的,但事实并非如此。

考虑这个帐户结构:

some accounts ...
  Account A
      Account B
      Account C
      Account D
      Account E
other accounts ...

我的客户维度是使用客户智能定义的——它也是一个父/子维度。

查询一:

SELECT [Measures].[Actual] ON 0 
FROM [MYSYSTEM] 
WHERE (
    {[Account].[Accounts].&[Account B], [Account].[Accounts].&[Account C]}, 
    [Time].[Year - Month].&[2011-12-01T00:00:00]
)

返回帐户 A(是,父级)的聚合 [Measures].[Actual] 值,而不是指定时间间隔内帐户 B 和 C 的值。

查询 2:

SELECT [Measures].[Actual] ON 0 
FROM [MYSYSTEM] 
WHERE 
    { 
    ([Account].[Accounts].&[Account B], [Time].[Year - Month].&[2011-12-01T00:00:00]),
    ([Account].[Accounts].&[Account C], [Time].[Year - Month].&[2011-12-01T00:00:00])
    }

返回我期望的值——指定时间间隔内账户 B 和 C 的 [Measures].[Actual] 值。

我的问题是——关于 MDX 作为一种语言,我在概念上是否遗漏了什么?我认为这些查询通常应该返回相同的值是错误的吗?这是否表明我在设置帐户维度时存在缺陷?

4

1 回答 1

1

我认为这与你的维度有关,我用我的多维数据集复制了查询,两次都得到了相同的结果:

select [Measures].[Amount] on 0,
[Account].[Account Type].[Account Type] on 1
from [Cube]
where (
{[Account].[Accounts].&[4],[Account].[Accounts].&[5]}
,[Date].[Calendar].[Month].&[2002]&[11]
)

select [Measures].[Amount] on 0,
[Account].[Account Type].[Account Type] on 1
from [Cube]
 where {
([Account].[Accounts].&[4],[Date].[Calendar].[Month].&[2002]&[11]),
([Account].[Accounts].&[5],[Date].[Calendar].[Month].&[2002]&[11])
}

这可能与使用帐户情报有关吗? http://msdn.microsoft.com/en-us/library/ms174759(v=sql.100).aspx 我自己没用过..

于 2013-04-03T06:37:28.440 回答