2012-11-09 137 views
8

我有我認爲是一個相當簡單的問題,但不能爲我的生活找出如何去做(SSRS 2008 R2)。我使用的是表矩陣,因爲我需要顯示的明細數據(不只是聚集)在SSRS 2008 R2中總結組項目

我有數據行(運費)和工作費用的分配

本報告中的(有刪節)數據

 
TrackNo  ShipCost NoJobs   JobNo  Job Cost 
T1    10.00  1    J1   10.00 
T2    10.00  3    J2   3.33 
T2    10.00  3    J3   3.33 
T2    10.00  3    J4   3.33 

因此,TrackNo T1可能有1個與其關聯的工作,並且TrackNo T2可能有3個關聯工作。然後,我將這些工作的成本按比例分攤。如果每次裝運成本$ 10:

  • 跟蹤無T1,工作不J1會得到$ 10.00
  • 跟蹤沒有T2,作業J2,J3 & J4將各獲得$ 3.33

我想有一個像這樣的向下鑽取報告:

 
TrackNo  Ship Total   No. Jobs   Job No    Job Total 
+ T1   10.00    1 
                J1     10.00 
+ T2   10.00    2               
                J2     3.33 
                J3     3.33 
                J4     3.33 

在我的報告中,第1組正在跟蹤否;小組2(小組)是工作號碼。

 
TrackNo 
    JobNo 

船舶上的報告總是First(Fields!ShipTotal.Value)

我要總結的ShipTotal整個報表(不總結工作總量,因爲這些有舍入誤差:如3.33 * 3 = 9.99)

我怎樣才能將所顯示的值與第1組(First(Fields!ShipTotal.Value))相加?我認爲範圍是方式,但我迷路了。

回答

17

通常這個問題需要舊版本的SSRS,所以很高興回答支持您需要的功能的最新版本。 SSRS 2008R2引入了對聚合總量的支持。

在你的報告總票房設表達式爲:

=SUM(MAX(Fields!ShipTotal.Value, "TrackNo"), "DataSetName") 

正如你提到的,範圍是這方面的一個重要組成部分。上面的表達式表示SSRS應爲每個「TrackNo」組採用第一個ShipTotal,並將其添加到數據集中的每個TrackNo組。 (替換你的數據在那裏集名稱,當然。)其他

兩個兩種方法來得到這樣的結果也將在早期版本的SSRS的工作,以及:

  • 使用嵌入代碼keep track of the aggregate
  • 在查詢中執行數學運算,使用不同的數據集返回結果,或將結果作爲每行的新字段。
+0

在SSRS 2005中做這項工作?當我嘗試它時,我收到錯誤「聚合函數不能嵌套在其他聚合函數內」。 – FistOfFury

+3

不,此功能是隨SSRS 2008R2一起添加的。 2005年有幾種方法可以實現這一點。最常見的一種方法是使用自定義代碼來存儲運行總計,並且每個組只添加一次。就像這樣:http://devshed.us/Blogs/tabid/227/EntryId/552/SSRS-How-to-get-a-running-total。aspx –

+1

如果像我這樣需要組頁腳中的總和,則不需要指定數據集:'= Sum(Max(Fields!ShipTotal.Value,「TrackNo」))''就足夠了 – Johann