Ich muss für Lagerartikel die Jahresumsätze der letzten 5 Jahre erstellen.
Der SQL dazu:
SQL-Anweisung
1: 2: 3:
| select min(extract(year from artikelhistorie.zeitstempel)),sum(artikelhistorie.mengenaenderung) from artikelhistorie where ref0=:ref group by extract(year from artikelhistorie.zeitstempel) |
Funktioniert einwandfrei, jedoch
1. es fehlen eventuell Jahre; sind in 2003,2005 und 2007 Umsätze angefallen, in den Jahren 2004 und 2006 nicht, so fehlen diese Jahre in der Liste (weil es ja keine Datensätze darüber gibt
2. Es sollen fest die letzten 5 Jahre angezeigt werden. Beginnen die Umsätze jedoch erst 2006, so fehlen die ersten Jahre.
Gibt es eine einfache Möglichkeit die "fehlenden Jahre" nachzuliefern.
Eventuell mittels UNION?
Welcher SQL könnte einfach folgende Zahlenfolge dazu liefern liefern:
2003 0
2004 0
2005 0
2006 0
2007 0
Dafür extra eine Dummy-Tabelle anlegen und pflegen möchte ich nicht. Eine Stored Procedure sollte es nur im Notfall sein.