2014-10-17 83 views
0

排序不工作我哪裏行正在從DB拉到矩陣和他們表現出如下:爲什麼我的矩陣行組SSRS

Critical 
High 
Informational 
Low 
Medium 

我需要他們證明這樣的:

Critical 
High 
Medium 
Low 
Informational 

目前,我要去行組屬性,我選擇排序,並輸入以下表達式。

=IIF(Fields!Risk.Value = "Critical", 1, IIF(Fields!Risk.Value = "High", 2, IIF(Fields!Risk.Value = "Medium", 3, IIF(Fields!Risk.Value = "Low", 4, 5)))) 

當我生成報告時,它現在只有1行。只是「關鍵」的一排。所有其他行都丟失。

有沒有人有任何想法我做錯了什麼?

當我使用這個:

= IIF(字段Risk.Value = 「嚴重」, 「1」,IIF(字段Risk.Value = 「高」, 「2」,IIF(字段!! Risk.Value =「Medium」,「3」,iif(Fields!Risk.Value =「Low」,「4」,iif(Fields!Risk.Value =「Informational」,「5」,「」)))) )

所有的行再次顯示,但以錯誤的順序顯示,就好像根本沒有完成任何排序。

回答

0

您有以下選擇:

嘗試生成使用ROW_NUMBER()函數在數據庫中該數據的標識符。然後你可以在你的行組中指定它。 嘗試開關SSRS表達,而不是一個嵌套IIF如下:

=SWITCH(Fields!CurrentRiskLevel.Value = "Low", "Green", 
Fields!CurrentRiskLevel.Value = "Moderate", "Blue", 
Fields!CurrentRiskLevel.Value = "Medium", "Yellow", 
Fields!CurrentRiskLevel.Value = "High", "Orange", 
Fields!CurrentRiskLevel.Value = "Very High", "Red" 
) 
1

這可能是更清潔和更精確,使風險標識符可通過實際數據集,而不是在報告的運行時間。在你的原始數據集,你可以包括你選擇的SQL語句中的case語句:

CASE [風險] 如果「批判」,那麼「1」 如果「高」,那麼「2」
如果「中」,那麼' 3' 如果‘低’,那麼‘4’ ELSE‘5’ END作爲risk_identifier

然後,您可以在您的表矩陣/矩陣‘risk_identifier’,並會通過或排序提供給組。