2016-03-31 28 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 

In meinem SSRS-Bericht möchte ich die Spalte mit den gemeldeten Stunden zusammenfassen. Diese Person gebucht 172 Stunden im Dezember und 185 Stunden im November, so dass seine Summe für das Jahr sollte 185 + 172 = 357.SSRS - Wie man eine Zeile zusammenfasst

In meinem aktuellen Bericht fügt es alle Zeilen zusammen. Wie bekomme ich es, nur eine Zeile der gemeldeten Stunden pro Monat auszuwählen?

Danke

Antwort

0

Es gibt keine Möglichkeit, dies in SSRS zu tun.

Normalerweise würden Sie Ihre Abfrage in eine andere Abfrage umbrechen, die ROW_NUMBER verwendet und nach Monaten gruppiert. Dann fügen Sie nur die Stunden, wenn die row_numnber = 1.

How do I use ROW_NUMBER()?

Leider ist das nicht immer möglich. Ich habe einen Code geschrieben, um eindeutige Datensätze basierend auf einem anderen Feld zu addieren. Ich habe es geschafft, Scheckbeträge für verschiedene Anbieter zu bekommen.

Für den Ausdruck, verwenden Sie:

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

Fügen Sie den Visual BASIC zum CODE des Berichts:

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