2011-04-14 35 views
1

嗨,我是SSAS和MDX的新手,需要基於OLAP多維數據集生成ssrs報表。 我無法弄清楚如何在列和行上顯示不同的維成員。 尺寸是這樣的行評級,時間列和客戶端和狀態:使用SSAS和MDX在列和行上顯示不同的尺寸

   | a rated | b rated | c rated | Year-3 | Year-2 | Year-1 | Year* | Total| 
good clients | 
medium clients| 
bad clients | 
total clients | 
status 1  | 
status 2  | 
status 3  | 
total status | 
---------------------------------------------------------------------------------------- 

年相當於當年。

我怎樣才能達到這與MDX?

回答

0

在MDX中,如果要在同一軸上顯示不同維度的成員,可以將它們放入一個元組中。例如:

select ([Time].[Calendar].[Year], [Rate].[rating].children) on columns, 
select (... , ...) on rows 
from [cube] 

可能有助於解決您的問題。

+0

我試過這個,但是它和crossjoin功能完全一樣。但我的需求是不同的,收視率和時間欄是獨立的。例如,我不希望2010年的評級爲良好的客戶,我只想在一列上評級爲良好的客戶,在其他列中爲2010年好的客戶數量... – 2011-04-14 11:03:09

0

MDX SELECT語句的軸是一組具有相同「維度」的元組。這意味着所有的元組都必須包含相同維度的成員。所以你不能擁有由你請求的不同維度的MDX集合(一個成員是一個元組)。

這就是說,我不明白:「收視率和時間欄是獨立的」。這是什麼意思?

+0

這意味着我想在第一3列的客戶關於他們的評級沒有時間的概念,然後在最後的列中,我想爲當前年份加上年 - 1,年 - 2等客戶。 – 2011-04-15 07:49:09

+1

如何:select {[Time]。[All ] * [Rating] .members} + {[Time] .members * [Rating]。[All]} on 0,...假設您在時間和評分維度都有'all'成員。 – 2011-04-15 12:50:26

+0

不是因爲我在我的維度中沒有「全部」成員,並且因爲它會返回客戶關於年的評分,即2010年評級爲a的好客戶,這不是我想要的... – 2011-04-15 14:53:07

0

MDX查詢最多可以支持128個指定座標軸,但很少有MDX查詢會使用5個以上的座標軸。對於前5個軸,可以使用別名COLUMNS,ROWS,PAGES,SECTION和CHAPTERS。

嘗試使用上述軸來實現您期望的效果,例如查詢兩個不同的維度。