2016-03-31 86 views
0
Report Month   Booked Month   Hours  Available Hours Reported Hours 
2015-12-01 00:00:00 2015-10-01 00:00:00  3.5  97     172 
2015-12-01 00:00:00 2015-10-01 00:00:00  0.75  97     172 
2015-12-01 00:00:00 2015-10-01 00:00:00  6.85  97     172 
2015-12-01 00:00:00 2015-10-01 00:00:00  3   97     172 
2015-11-01 00:00:00 2015-10-01 00:00:00  3.5  97     185 
2015-11-01 00:00:00 2015-10-01 00:00:00  0.75  97     185 
2015-11-01 00:00:00 2015-10-01 00:00:00  6.85  97     185 
2015-11-01 00:00:00 2015-10-01 00:00:00  3   97     185 

在我的SSRS報告中,我想要總報告時數列。這個人在12月預訂了172個小時,在11月預訂了185個小時,所以他在這一年的總計應該是185 + 172 = 357.SSRS - 如何總排

在我目前的報告中,它將所有行加在一起。我如何才能每月選擇一行報告的時間?

謝謝

回答

0

在SSRS中沒有一種方法可以做到這一點。

通常,您會將您的查詢包裝在另一個使用ROW_NUMBER並按月分組的查詢中。那麼只有當row_numnber添加小時= 1

How do I use ROW_NUMBER()?

不幸的是這並不總是可能的。我寫了一些代碼來添加基於另一個字段的唯一記錄。我使它能夠獲得各種供應商的支票金額。

對於表達,你可以使用:

=Code.SUMVendors(Report_Month & "|" & Fields!Reported_Hours.Value) 

在Visual Basic添加到報表的CODE

FUNCTION SUMVendors(BYVAL ITEMS AS OBJECT()) AS DECIMAL 
'Returns Sum of unique vendors. Use as Code.SUMVendors(Vendor & "|" & Amount) 
IF ITEMS IS NOTHING THEN 
    RETURN NOTHING 
    GOTO EXITSUB 
END IF 

DIM TEMP AS STRING 
DIM VENDORS AS STRING = "" 
DIM VENDOR AS STRING = "" 
DIM VALUE AS DECIMAL 

FOR EACH ITEM AS OBJECT IN ITEMS 

    TEMP = CONVERT.TOSTRING(ITEM) 

    VENDOR = "|" & LEFT(TEMP, InStr(TEMP, "|")) 

    VALUE = CDEC(MID(TEMP, InStr(TEMP, "|") + 1, LEN(TEMP))) 

    IF InStr(VENDORS, VENDOR) = 0 Then 
     VENDORS = VENDORS + VENDOR 
     SUMVendors = SUMVendors + VALUE 
    End If 

NEXT 

EXITSUB: 
END FUNCTION