2013-04-02 180 views
0

我有兩個MDX查詢(其基礎來自Excel的CUBEVALUE()函數)。我期望這兩個查詢的輸出是相同的,但它們不是。這兩個MDX查詢應該返回相同的結果嗎?

考慮這個賬戶結構:

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(是的,父)值,而不是在指定的賬戶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 [措施] [實際]價值。

我的問題是這樣的 - 有沒有什麼我在概念上將MDX作爲一種語言缺失?我錯誤地認爲這些查詢通常應該返回相同的值嗎?這是否表明我的賬戶維度的缺陷?

回答

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 我沒有使用過自己..

+0

+1。非常感謝您在您的環境中花費大量時間複製這些內容。這就是我的想法。我很可能很快就會重新整理我的整個魔方,將作品從SSAS Multidimensional移動到Tabular模式。我敢打賭,當我做出這樣的改變時,我會看到查詢的行爲也會改變。 –

相關問題