Bei mir war es so, dass ohne den COALESCE der Preis auf 0 gesetzt wurde
Kein Wunder. Du arbeitest mit einem Subselect, ich mit einem Join. Für Dein Vorgehen braucht es COALESCE, für meines nicht. Dieses weil ich nicht existierende Zeilen durch die WHERE-Clausel sauber ausschließe.