2016-12-07 8 views
0

I-Feld mit dem Namen Flugzeiten haben und die Werte sind:Verwenden AVG in SSRS Bericht

Flugzeiten:
44 + 33 77 + 34 69 + 20 64 + 36 81 + 10 81 + 19 85 + 34

Ich brauche den AVG für diesen Wert. die Wertanzeige Stunden + Minuten Kann jemand helfen?

+0

Also ist jeder dieser Werte ein separater String-Datensatz in Ihrem DataSet? Wie: Record1 = '" 44 + 33 "', Record2 = '" 77 + 34 "', Record3 = '" 69 + 20 "usw.? – 3N1GM4

+0

Ich nehme auch an, dass es auf beiden Seiten einstellige Werte geben kann, wie "9 + 33" oder "25 + 4"? – 3N1GM4

Antwort

0

Wenn diese Werte in einem bestimmten Bereich in Ihrem Datensatz erscheinen, die jeweils als separater Datensatz (nach meinem Kommentar), dann würde ich einen Ausdruck wie verwenden:

=CStr(Floor(Avg((CInt(Left(Fields!FlightHours.Value,InStr(Fields!FlightHours.Value,"+")-1))*60) + CInt(Right(Fields!FlightHours.Value,Len(Fields!FlightHours.Value)-InStr(Fields!FlightHours.Value,"+"))))/60)) & "+" & CStr(Round(Avg((CInt(Left(Fields!FlightHours.Value,InStr(Fields!FlightHours.Value,"+")-1))*60) + CInt(Right(Fields!FlightHours.Value,Len(Fields!FlightHours.Value)-InStr(Fields!FlightHours.Value,"+")))) Mod 60))

Diese ursprünglichen Werte annimmt (zB 44+33) und teilt die Stunden und Minuten separat auf (basierend auf dem Ort des + Zeichens, wandelt sie in numerische ganzzahlige Werte um, multipliziert dann die Stunden mit 60 und addiert mit den Minuten, um eine Gesamtanzahl von Minuten zu erhalten. Wir dann mitteln Sie diese Werte für das gesamte DataSet, bevor Sie den Prozess umkehren, indem Sie den gemittelten Minutenwert in seine Konstante aufteilen Ituent Stunden und Minuten, vor dem Neuformatieren als String in der Form [h]h+[m]m nach den ursprünglichen Werten.

Für Ihre Beispieldaten ergibt dies ein Ergebnis von 72+1, was ich für richtig halte.

+0

Toller Job, es funktioniert. Vielen Dank. –

+0

Kein Problem, froh, dass es Ihnen nützlich war. – 3N1GM4