2011-08-10 68 views
0

我有一個ssrs report。有一個包含2行組(從外到內)的矩陣:組 - 項目和1列組:年份。我希望這很容易理解。請參閱下面的「圖像」。棘手的ssrs問題

Group   CAGR     2010      2011            

Group1  CAGR_group1  sum_group1_2010  sum_group1_2011 
    Item1  CAGR_item1  sum_item1_2010  sum_item1_2011 
    Item2  CAGR_item2  sum_item2_2010  sum_item2_2011 

sum_group1_2010sum_group1_2011是物品1和,ITEM2每年。 CAGR_item1CAGR_item2通過該fomular計算:

CAGR = (sum_item2_2011/sum_item2_2010)^(1/n) - 1 (n=2011-2010) 

我在代碼中創建這個功能。計算每個項目的CAGR非常簡單。我使用了下面的表達式:注意首先參考2010年,在這種情況下最後參考2011年。

Code.CAGR(First(Fields!Amount.Value).ToString, Last(Fields!Amount.Value).ToString, Last(Fields!year.Value).ToString - First(Fields!year.Value).ToString) 

現在的問題是我該如何計算CAGR_group1?我打算用

Code.CAGR(First(Sum(Fields!Amount.Value)).ToString, Last(Sum(Fields!Amount.Value)).ToString, Last(Fields!year.Value).ToString - First(Fields!year.Value).ToString). 

然後SSRS報道在另一個聚合函數不能使用聚合函數。

希望一切都清楚。謝謝。

回答

0

我認爲最簡單的方法是將計算添加到SQL查詢中:它可以是現有查詢中的一個新列,它對每個記錄(行)計算相同的值。然後在你的報告中使用FIRST函數。

或者,如果你添加相應的範圍說明你的聚合函數,如First這可能工作(SUM(字段!Amount.Value,「ItemGroupName」),「Group1GroupName」)

+0

我終於用SQL做所有的計算和讓SSRS只是爲了顯示結果。順便說一句,我用SSRS2008。 FIRST(SUM(Fields!Amount.Value,「ItemGroupName」),「Group1GroupName」)apporach也不起作用:「範圍參數必須設置爲等於包含組的名稱的字符串常量。 ..「。 – thotwielder