Hi!
Das Problem an der Anfrage ist jedoch, wenn für ein bestimmtes Jahr keine Einträge gefunden werden, wird keine 0 ausgegeben.
Das Thema gabs vor kurzem erst, aber ich finde den Thread grad nicht.
Daten, die nicht vorhanden sind, können auch nicht im Abfrageergebnis auftauchen. Man kann beim Auswerten im abfragenden Programm die Lücke feststellen und 0-Zeilen zur Ausgabe bringen.
Eine Lösung allein im DBMS ist zum Beispiel eine Stored Procedure, die für das Abfrageintervall eine temporäre Tabelle mit jedem gewünschten Ergebnis (Jahr in deinem Fall) erstellt. An diese temporäre Tabelle kann man mit einen Left Join die eigentlichen Daten verknüpfen. Für die nicht vorhandenen Jahre ergibt das dann NULL, das man gegebenenfalls mit einer der Funktionen mit NULL im Namen oder COALESCE() zu einer Interger-Null bekommt.
Diese temporäre Tabelle kann man auch mit dem abfragenden Programm generieren, was aber aufwendiger ist, weil CREATE TABLE und ein INSERT-Statement zusammengebaut und zum DBMS gesendet werden müssen. Da kommt man günstiger, beim Auswerten auf Lücken zu testen.
Lo!