Als kleine Ergänzung: man sollte NULL statt 0 nehmen, da dann vergleichbare Funktionen verwendet werden können:

Sum(Case When Year(Datum) = 2003 then Wert else NULL End) as Sum2003,
Avg(Case When Year(Datum) = 2003 then Wert else NULL End) as Avg2003 ...

Wird 0 verwendet, geht die Anzahl in den Count für AVG, bei NULL nicht.