Benutzer mit den meisten Antworten
SSRS SUM-Funktion

Frage
-
Sehr geehrte Foren-Mitglieder,
ich stehe vor einem kleinen Problem. Mir wurde ein Aufgabe übertragen, dass ich einen alten Crystal Bericht in das neue SSRS 2016 übernehmen soll. Soweit alles kein Problem. Ich arbeite mit dem Berichtsgenerator 3.0 für SSRS 2016. Mein derzeitiger Bericht sieht ungefähr so aus:
Artikel Bezeichnung Menge Volumen
Gruppe 1 Monat
Gruppe 2 Woche
Gruppe 3 Tag
Gruppe 4 Artikel
Detail sind ausgeblendet.
Jetzt muss ich folgende Formel aus dem Crystal Bericht ins SSRS 2016 übernehmen:
Sum ({@Volumen}, {Datum}, "daily")/(8*37.152)*100
Wie muss die Formel in SSRS aussehen damit es funktioniert?
Eigentlich ist das ja nichts anderes wie:
Sum(Volumen) / (8*37.152)*100
Aber sobald ich eine Expression mit der Formel erstelle erhalte ich eine Fehlermeldung:
Der Value-Ausdruck für das Feld-Objekt enthält einen Fehler (BC30198)
Weiß jemand wie ich mein Problem lösen kann und kann mir helfen?
Über jegliche Hilfe wäre ich sehr dankbar.
Vielen Dank.
Gruß
dash_
Antworten
-
Hallo!
Ich würde im Ausdruck eher etwas in dieser Richtung erwarten:
=Sum(Fields!Volumen.Value) / (8*37.152)*100
Leider ist mir nicht klar, wo Du genau diesen Ausdruck einsetzt. Kannst Du das mal genauer beschreiben, bzw. einen Screenshot posten?
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Christoph Muthmann Dienstag, 20. Juni 2017 07:42
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Freitag, 30. Juni 2017 07:45
Alle Antworten
-
1. rechne den Wert der Konstanten (8*37.152)*100 einfach aus: 29721,6
2. Packe das in die SUM-Formel, da es mathematisch egal ist, ob du vor oder nach dem Aggregat dividierst.SUM(Volumen / 29721,6)
Alternativ geht vielleicht auch
SUM(Volumne) / AVG(29721,6)
-
Leider hat dein Vorschlag bei mir nichts gebracht.
Bekomme dann die Fehlermeldung:
Der Ausdruck für das berechnete Feld "AbweichungT" enthält eine Aggregat-, RowNumber-, RunningValue- Previous oder Suchfunktion....
Warum auch immer..
Über weitere hilfreiche Tipps wäre ich sehr dankbar!
Gruß
dash_
-
Hallo Zusammen,
hierzu eine erste kleine Anmerkung. Die beiden folgenden Berechnungen sind nicht identisch:
Select 100000.0 / (8*37.152)*100; Select 100000.0 / ((8*37.152)*100);
Daher kann die Lösung oben "rechne den Wert der Konstanten (8*37.152)*100 einfach aus: 29721,6" auch nicht korrekt sein.
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
-
Da du dich im Berichtsgenerator befindest, ist die Auswahl der Funktionen scheinbar eingeschränkt:
https://docs.microsoft.com/de-de/sql/reporting-services/report-design/report-builder-functions-sum-functionAlso kannst du wohl nur "SUM(<Ausdruck>)" verwenden, was höchstens gleichbedeutend mit "SUM(Volumen / 29721,6)" wäre.
Manchmal hilft dann nur eine Umgehungslösung mit Zwischenergebnissen.
In der Datenquelle (oder SQL-Abfrage?) ein berechnetes Feld "CalcVolumen" hinzufügen "Volumen / 29721,6" und dann dieses im Bericht aggregieren. -
Hallo!
Ich würde im Ausdruck eher etwas in dieser Richtung erwarten:
=Sum(Fields!Volumen.Value) / (8*37.152)*100
Leider ist mir nicht klar, wo Du genau diesen Ausdruck einsetzt. Kannst Du das mal genauer beschreiben, bzw. einen Screenshot posten?
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Christoph Muthmann Dienstag, 20. Juni 2017 07:42
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Freitag, 30. Juni 2017 07:45
-
Hallo Leute,
vielen Dank für die schnellen Rückmeldungen.
Also mein Problem war einfach das ich aus Gewohnheit ein KOMMA anstatt wie es richtig ist ein PUNKT genommen habe... Dabei dachte ich immer es liegt an was anderem.
Also folgende Rechnung bringt mich auf richtiges Ergebnis:
=Sum(Fields!Volumen.Value) / (8 * 37.152) * 100
Jetzt stehe ich aber schon vor dem nächsten Problem.
In Crystal Reports habe ich die gleiche Formel für die Gruppe Woche, jedoch mit einem DISTINCTCOUNT
Sum ({@Volumen}, {Woche}, "weekly")/(DistinctCount ({Tag}, {Woche}, "weekly")*8*37.152)*100
Ist im Berichtsgenerator der Befehl CountDistinct dasselbe?
Bekomme falsche Werte.
Gruß
dash_