我有两个MDX查询(其基础来自Excel的CUBEVALUE()函数)。我希望这两个查询的输出相同,但它们不是。
考虑这个帐户结构:
some accounts ...
Account A
Account B
Account C
Account D
Account E
other accounts ...
我的帐户维度是使用帐户智能定义的 - 它也是父/子维度。
查询1:
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作为语言的东西?我认为这些查询通常应返回相同的值,这是错误的吗?这是否表明我如何制定帐户维度?
答案 0 :(得分: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 我自己没用过..