2009-07-06 21 views
0

我使用的是形式的查詢:使用分析服務2008有沒有一種方法可以指定每個單元格都應該使用MDX?

Select { 
    ([Measures].[M1], [Time].[2000]), 
    ([Measures].[M2], [Time].[2000]), 
    ([Measures].[M1], [Time].[2001]), 
    ([Measures].[M2], [Time].[2001]) 
} on 0 
From [Cube] 
Where 
    ([Some].[OtherStuff]) 

即使我不指定非空的或類似的,我仍然只獲得三個細胞回(之一他們是空的)。

我該如何確保所有的細胞都帶回來 - 甚至是空的?

附加想法: 上面的查詢實際上並不是我正在運行的(足夠令人驚訝的:) :))。真正的有一個來自作爲select的一部分指定的相同維度的幾個層次結構,並且也作爲where子句的一部分。我想知道這是否與此有關,但我不知道究竟是什麼。

其他附加想法:* 這似乎是一個名爲Auto-Exists的AS2005/8功能。看看this MSDN article的相關部分。

+0

請發表確切的查詢,以便我們可以更好地爲您提供幫助。此外,我已經改變了我的答案,以考慮到這一點。 – Eric 2009-07-08 13:01:28

+0

Teroman發佈的查詢顯示了我正在談論的問題。 – Ant 2009-07-08 14:17:50

回答

1

你拉回不同的尺寸,這也太不靠譜好。試試這個:

with 
member [Time].[Calendar].[CY2000] as 
    ([Time].[Calendar].[2000], [Time].[Fiscal].[All Time]) 

member [Time].[Calendar].[FY2001] as 
    ([Time].[Calendar].[All Time], [Time].[Fiscal].[2001]) 

select 
    {[Time].[Calendar].[CY2000], [Time].[Calendar].[FY2001]}* 
    {[Measures].[M1], [Measures].[M2]} 
on columns 
from [Cube] 
where 
    {[Some].[OtherOtherStuff]} 
1

不是一個答案,但是這應該有助於縮小問題,即複製問題的AdventureWorks

SELECT 

{ ([Date].[Calendar].[Date].&[1], [Date].[Fiscal].[Date].&[1129]) } on 0 

FROM [Adventure Works] 

我期望這個帶回指定的元組和查詢一個空值,但是沒有元組被檢索到。

我認爲這是因爲該元組位於同一維度的兩個層次上,沒有共同點。

相關問題