Summe
Hallo Leute
Wie muss der Befehl geschrieben werden, wenn ich eine Summe von März bis Februar des nächsten Jahres erhalten möchte.
Danke für die Hilfe
8 Antworten
-
let tdy := year(date(today())); sum ((select Tabelle where Datum >= date(tdy, 3, 1) and Datum < date(tdy+1, 2, 29)).ZahlzumSummieren)
Hallo Rudolf,
so müsste es gehen. Annahme, dass es in Deiner Tabelle ein Feld "Datum" und ein Feld "ZahlzumSummieren" gibt
-
Herzlichen Dank Lars
es funktioniert
-
Hallo Lars
Ich habe mich zu früh gefreut, da bei der Berechnung das Jahr nicht berücksichtigt wird. Möglicherweise habe ich es schlecht erklärt. Daher nochmals
Die Aufzeichnungen sind über mehrere Jahre und es soll zB. von März 2019 beginnen, im April 2020 soll die Summe von März bis April aufscheinen und so weiter ........bis Februar 2020. Ab März 2020 soll wieder begonnen werden bis Februar 2021 und so weiter.
Kannst du dir es bitte nochmals ansehen
-
Es soll April 2019 sein und nicht 2020
-
Hallo Rudolf,
wenn ich es recht verstehe, möchtest Du also eine fortlaufende Aufsummierung
- April 2019 - März 2020
- Mai 2019 - April 2020
- Juni 2019 - Mai 2020
- usw.
Da wäre noch wichtig zu wissen, in welcher Form Du das möchtest. Soll das in ein Array, in einen String (kommasepariert), oder möchtest du das in Records in einer Tabelle.
Grundsätzlich lässt sich das aber in einer Schleife machen. Hier jetzt mal ein Beispiel, das einen kommaseparierten String ausgibt (über das if in der Schleife bin ich noch nicht glücklich, aber mir fällt gerade nichts anderes ein ... die 'div'-Funktion habe ich noch nicht gefunden).
let sumString := ""; let summe := 0; for y in range(2019, year(date(today()))) do for m in range(1, 13) do let maxmonthday := item([0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], m); if m = 1 then summe := sum ((select Tabelle where Datum >= date(y, m, 1) and Datum < date(y, 12, maxmonthday)).ZahlzumSummieren) else summe := sum ((select Tabelle where Datum >= date(y, m, 1) and Datum < date(y+1, m-1, maxmonthday)).ZahlzumSummieren) end; sumString := concat(sumString, string(m) + "." + string(y) + ":" + summe); end; end; sumString
Den String kannst du ja z. B. mit split in ein Array aufteilen
-
Hallo Lars
Ich denke ich muss es anders erklären. Ein normales Geschäftsjahr beginnt am 01.01.xy und endet am 31.12.xy. Um diese Summe zu berechnen verwende ich folgende Formel:
let me := this;
sum((select Tabelle where month(Datum) <= me.month(Datum) and year(Datum) = me.year(Datum)).zu berechnende Zelle)Nun habe ich aber das Problem, dass das Geschäftsjahr am 01.03.xy beginnt und am letzten Februar des darauffolgenden Jahr endet.
-
Danke für deine Bemühung
Jetzt funktioniert es wie ich es gedacht habe.
Ich wünsche dir ein schönes Wochenende
Content aside
- vor 2 JahrenZuletzt aktiv
- 8Antworten
- 116Ansichten
-
3
Folge bereits