2015-04-28 131 views
0

我與SSRS 2008年工作的時間間隔,我的消息來源是一個立方體,我用這個MDX查詢:如何創建一個矩陣

SELECT NON EMPTY { [Measures].[Val] } ON COLUMNS, 
    NON EMPTY { ([DimCl].[Cl].[Cl].ALLMEMBERS, 
       [DDate].[Year].[Year].ALLMEMBERS) } 
    ON ROWS FROM [DW] 

我創建了以下數據矩陣

 2014   2015 
0  10   11 
1  15   10 
2  15   11 
3  18   14 
4  10   8 
5   5   5 
6  12   10 
7  10   15  
8  20   18 

我需要做的間隔結果矩陣應該是這樣的:

2014   2015 
<=2  40   32 
]2;4] 28   22 
]4;6] 17   15 
>6  30   33 

我試圖在SSRS但我switch語句出現錯誤,有人可以告訴我我該怎麼做?

感謝

回答

1

您可以通過在表矩陣創建一個組,並使用group by表達式來定義範圍內做到這一點。右鍵單擊Tablix中的詳細信息行,然後選擇添加組 - >父組。點擊Group By:旁邊的功能按鈕。你只需要添加一個求和函數爲您值表矩陣

=iif(Fields!Val.Value <= 2, "<=2", iif(Fields!Val.Value <=4, "]2;4]", iif(Fields!Val.Value <=6, "]4;6]", ">6"))) 

現在,在您的新組的一行:你想補充像這樣爲你的表達。你會得到每個組的總和。

+0

感謝您回答我的工作 –

1

由於您將數據分組並根據此「間隔」進行聚合,因此我建議您添加一個計算字段並在值中使用Switch()函數。

=開關(

字段!Val.Value < = 2, 「< = 2」,

字段!Val.Value < = 4, 「2-4」,

字段!Val.Value < = 6, 「4-6」,

字段!Val.Value> 6 「> 6」 )

然後喲你可以在這個字段上進行分組,並指定組名作爲範圍sum()函數

+0

嗨,感謝您的回答,你可以解釋我更多:指定組作爲作用域sum()謝謝 –

+0

嗨,感謝它的工作 –