Da in der Join-Beziehung nur Kunde und Artikel genannt ist, kann der Or-Zweig nie erfüllt werden, da nunmal b.Jahr nie NULL ist.

Cristians Lösung ist da eleganter, insbesonders, da auch Sätze von 2005 ausgewählt werden, die in 2006 nicht vorhanden ist.

Falls "from (select ...) " noch nicht unterstützt werden kann man auch mit folgendem Konstrukt arbeiten:

with
xUmsatz as
(select kunde, art, menge m1, wert w1, 0 m2, 0 w2 from Umsatz where jahr=2005
union
select kunde, art, 0 m1, 0 w1, menge m2, wert w2 from Umsatz where jahr=2006)
select
tab.kunde, tab.art, sum(tab.m1), wert(tab.w1), sum(tab.m2), sum(tab.w2)
from xUmsatz
group by
tab.kunde, tab.art
order by
tab.kunde, tab.art