Monatssummen bilden
Guten Morgen!
Ich habe eine Datenbank mit Aufträgen und deren Auftragswert; für jeden Tag, an dem es einen Auftrag gab, gibt es einen EIntrag.
Ich muss nun 6-Monats-Summen der Auftreagswerte bilden - und das für jeden Tag des Jahres.
Ich muss also für den 1.1.2020 wissen, welche Auftragssumme es zwischen dem 1.6.2019 und dem 31.12.2019 gab. Entsprechende für den 21.9.2020 soll ausgerechnet werden, welöche Auftragssume für den 19.3.2020 bis zum 20.9.2020 erfasst wurde.
Am Ende soll eine neue Tabelle stehen, in der alle 6.-Monats-Summen zwischen dem 1.1.2020 und dem 31.12.2020 aufgelistet sind.
Ich verlaufe mich da irgendwie mit den Schleifen und weiss nicht, wie ich die Elemente in der Auftragsliste anspreche, um wirklich die passenden Daten rauszufiltern.
Danke für eure Hilfe!
3 Antworten
-
Hallo Christian, muss es eine Extra-Tabelle sein? Wenn die Tabelle 'Aufträge' ein 'Datum' und den 'Auftragswert' enthält, könnte man die Summen der letzten 6 Monate ja auch mit einem Berechnungsfeld ermitteln und eine Tabellenansicht erstellen, welche als Spalten nur das Datum und die Summe anzeigt. Der Code für das Berechnungsfeld könnte bspw. so aussehen:
let vonDate := date(year(Datum), month(Datum) - 6, day(Datum));
let bisDate := Datum;
sum((select 'Aufträge' where Datum > vonDate and Datum < bisDate).Auftragswert)
-
Gute Idee - das könnte funktionieren. Ich bin noch nicht sicher, ob ich mit den neuen Daten weiterarbeiten muss - aber dann könnte sie man mit create in einer eigenen Tabelle einfügen, oder?
-
Ja, man kann die Werte natürlich auch in eine eigene Tabelle schreiben. Allerdings benötigt man dafür ein auslösendes Ereignis. Man könnte bspw. irgendwo eine Schaltfläche erstellen und mit dieser bei Bedarf alle noch nicht berechneten Tage generieren. Dazu müsste man, um es mal grob zu skizzieren, den letzten Datumseintrag der Summentabelle ermitteln, für alle Tage bis zum gestrigen einen neuen Datensatz erstellen und in jedem die Summe der jeweils letzten 6 Monate berechnen. Wäre also etwas aufwändiger und würde auch bedingen, dass in der Auftragstabelle keine Einträge nachträglich vorgenommen werden.
Content aside
- vor 4 JahrenZuletzt aktiv
- 3Antworten
- 476Ansichten