2013-10-24 31 views
0

我有一個列(衝擊/小時),經過一些計算後得到填充。現在我想分配每一行的排名。例如Maximum dollar amt得到的排名爲1.任何提示寫一個表達式將不勝感激。謝謝。 enter image description here如何在SSRS報告中分配等級?

+1

Impact/Hr基於數據集中的計算字段還是嵌入在文本框中?如果是後者,是否可以將其創建爲數據集中的計算字段?另外,這是否可以在生成數據集時計算出來,而不是在報告中進行計算? –

+0

嗨伊恩,計算字段嵌入在文本框中。就像你說的那樣,可以通過更改我用來創建數據集的SQL來實現。如果沒有其他選擇,我將不得不使用它。雖然 – poshan

+0

也許最簡單,如果你可以在T-SQL中做到這一點...這個答案有幾個選項,但我認爲沒有一個簡單的舊式T-SQL排名函數,即使它們可能適用於你:http://stackoverflow.com/questions/1826440/ssrs-row-group-column-group-rownumber-issue –

回答

1

只添加Report一些自定義代碼 - Report Properties... - Code

Dim Rank AS Integer 

Function GetRank() AS Integer 
    Rank = Rank + 1 
    Return Rank 
End Function 

在你想要的級別,使用下面的公式你的表矩陣的詳細單元:

=Code.GetRank() 

每次它處理該單元格,它會向等級中添加一個並顯示結果。

1

這可能是你的第二選擇!

您可以按照升序排列Impact\Hr,並使用RowNumber函數顯示排名。請參閱RowNumber功能。

0

使用Rank函數。

選擇[每HR的影響],[我的排名] =等級()OVER(ORDER BY [每HR的影響] DESC)

則根據哪個值要使用ASC /降序進行排列高或低。 這與任何聲明無關

對於像這樣的應用程序,Rank()優於Row_Number(),因爲具有相同值的行將具有相同的Rank,但將具有不同的Row_Number。