2016-03-31 29 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 - 行の合計方法

私の現在のレポートでは、すべての行がまとめられています。 1か月に報告された時間の行を1つだけ選択するにはどうすればよいですか?

ありがとうございました

答えて

0

SSRSでこれを行う方法はありません。

通常、ROW_NUMBERを使用し、月ごとにグループを使用する別のクエリでクエリをラップします。 = 1

How do I use ROW_NUMBER()?

row_numnberは、残念ながら、それは常に可能ではない場合のみ時間を追加します。別のフィールドに基づいて一意のレコードを追加するコードを書きました。私は、さまざまな業者の小切手の金額を入手するようにしました。

あなたが使用する発現のために

、:

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

レポートのCODEへのVisual BASICを追加します。

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 
関連する問題