Left Join ist schon richtig, wenn man davon ausgehen muss, dass nicht alle Lagerplätze befüllt sind.
Wichtig ist für die Ausgabe von "Leerwerten" immer, dass sie trotzdem als Datum vorhanden sein müssen.
SQL kann keine Daten anzeigen, die nicht da sind. Also muss man in diesem Fall die Lagerplatzdefinition auslesen und mit den Artikeln joinen.
Die With Lösung von Frickler macht das auch, vielleicht sogar schneller, aber ich finde es klassisch schicker und verständlicher
Code:
select lager.zähler, lager.lagerplatz,
sum(artikel.preis) as summe_preis
from Tabell1 as lager left join tabelle2 as artikel
on lager.zähler = artikel.IDSchrank
group by lager.zähler, lager.lagerplatz