SSRS: Summieren von TimeSpan-Werten in einem Bericht

8

Ich habe einen Bericht und eine Datenquelle, wobei eine der Spalten vom Typ TimeSpan ist. Der TimeSpan-Wert scheint korrekt im Bericht angezeigt zu werden, wenn ich Fields!TheTime.Value verwende, kein Problem.

  • 07:02:00
  • 05:41:00

Aber ich möchte eine Summe für diese Werte machen, um die Gesamtzeit einer Gruppe zu erhalten. In C # und so kann ich natürlich einen TimeSpan + einen anderen TimeSpan machen, also weiß ich, dass sie hinzugefügt werden können. Ich habe es versucht

%Vor%

Aber es endet mit dem Ausdrucken als eine lange Anzahl von einer Art. Zum Beispiel würde ich für die oben ausgegebenen Zeiten 457800000000 als Summe erhalten. Und was soll das eigentlich sein?

Wie kann ich Zeitfensterwerte in einem Bericht zusammenfassen? Für die oben genannten Zeitspannen würde ich gerne mit 12:43:00 als Summe enden. Es sei denn, mein Kopf hat mich noch einmal in Mathe versagt ... aber Sie haben die Idee: p

    
Svish 27.02.2009, 15:14
quelle

3 Antworten

14

seufzen Die Lösung nervtötend einfach ... Warum konnte ich das nicht gerade erst ausprobiert haben? Naja ... vielleicht, weil ich nicht wusste, dass ich Zugang zu TimeSpan classe hatte ... vielleicht weil ich mich für blind gehalten hatte ... Aber egal, hier ist es:

%Vor%

D'oh!

    
Svish 02.03.2009, 09:13
quelle
1

@Svish - Ich habe meinen vorherigen Beitrag gelöscht, weil ich eine richtige Unsicherheit über meine Antwort hatte, aber ich stimme @pfunk zu.

Ich habe SSRS endlich wieder hochgefahren und habe herumgespielt und es sieht ganz so aus, als ob Ihre große Zahl die Anzahl der Ticks ist, also sieht es so aus, als ob ein bisschen Formatierung des Ergebnisses für Sie funktionieren würde.

Interessanterweise war meine vorherige verschachtelte Antwort ein Workaround zum Summieren von DateTime-Werten (mit dem SQL Server DATETIME-Datentyp in meiner Abfrage), die Sie in SSRS (und SQL) nicht ausführen können, weil Sie DATETIME nicht summieren können. Ich werde es hier wieder für zukünftige Referenz aufnehmen, aber ich denke, war früher ein bisschen eine Tangente:)

Der folgende Code konvertiert ein DateTime-Feld in ein Double, summiert das Ergebnis und konvertiert es dann zurück in DateTime und formatiert es für hh: mm: ss

%Vor%     
Rich Andrews 27.02.2009 19:04
quelle
0

Wahrscheinlich wird beim Anzeigen von Fields! TheTime.Value SSRS intelligent genug sein, um dies als DateTime-Typ-Feld anzuzeigen

Wenn Sie die Summe dort eingeben, denkt es, dass es sich um ein numerisches Typfeld handelt, und zeigt es als solches an (dh es addiert die Anzahl der "Ticks" in jedem Zeitspannenfeld)

Versuchen Sie, den summierten Wert als Datetime in den Feldeigenschaften zu formatieren, und es wird wahrscheinlich korrekt angezeigt

    
pfunk 27.02.2009 18:38
quelle