Geben denn die einzelnen Teile Deiner Query die Richtigen Ergebnisse zurück?
Also gibt z.B.:
Code:
SELECT SUBSTRING ([dbo].[Zeit_kum].[Monate_kum], 4, 4)
FROM...
das Jahr richtig zurück?
Und gibt das SELECT die richtigen ungefilterten Zeilen zurück?
Was bringt Dir in der WHERE Klausel das Jahre = Jahre? 1 = 1 sollte ja immer wahr sein, dann kannst Du das ja eigentlich weglassen und nur den SUBSTRING auf die Gleichheit prüfen.