Hi,
ich muß aus einer MySQL-Tabelle mit Quartals-Umsätzen, das sog. Moving Annual Total (MAT) berechnen.
Das MAT ist die Summe des vergangen Jahres rückgerechnet ab dem jeweiligen Datenpunkt.
Die Tabelle sieht vereinfacht ungefähr so aus:
id, year, quarter, product_group, amount
Wenn ich jetzt eine Abfrage mache zum Beispiel für
year IN (2016,2017),
quarter IN (1,2,3,4)
soll da zum Schluß folgende Summen bei raus kommen.
Q1 2016 => Summe Q 2,3,4 2015 + Q 1 2016,
Q2 2016 => Summe Q 3,4 2015 + Summe Q 1,2 2016,
Q3 2016 => Summe Q 4 2015 + Summe Q 1,2,3 2016,
usw.
also jeweils 1 Jahr zurück.
Da die Quartale und Jahre jeweils als INT gespeichert sind, denke ich zunächst nicht darüber nach, was hier einem Zeitfunktionen bieten.
Seht Ihr einen Ansatz wie man das richtig und möglichst direkt abfragt?
ich muß aus einer MySQL-Tabelle mit Quartals-Umsätzen, das sog. Moving Annual Total (MAT) berechnen.
Das MAT ist die Summe des vergangen Jahres rückgerechnet ab dem jeweiligen Datenpunkt.
Die Tabelle sieht vereinfacht ungefähr so aus:
id, year, quarter, product_group, amount
Wenn ich jetzt eine Abfrage mache zum Beispiel für
year IN (2016,2017),
quarter IN (1,2,3,4)
soll da zum Schluß folgende Summen bei raus kommen.
Q1 2016 => Summe Q 2,3,4 2015 + Q 1 2016,
Q2 2016 => Summe Q 3,4 2015 + Summe Q 1,2 2016,
Q3 2016 => Summe Q 4 2015 + Summe Q 1,2,3 2016,
usw.
also jeweils 1 Jahr zurück.
Da die Quartale und Jahre jeweils als INT gespeichert sind, denke ich zunächst nicht darüber nach, was hier einem Zeitfunktionen bieten.
Code:
SELECT year, quarter, product_group WHERE year IN (2016,2017) AND quarter IN (1,2,3,4) GROUP BY year, quarter, product_goup
Kommentar