Ich bin kein
mySQL Spezi, aber vielleicht hilft es dem Optimizer, doch etwas genauer vorzugehen.
Du könntest das "fehlende" Group by ergänzen.
Was sagt denn der Ausführungsplan? Deine "Primary" Aussage habe ich vlt. nicht verstanden. Du meinst die äußere Abfrage?
Wieviel Sätze würde das innere Select allein ergeben? Oder der Rechnungsschnitt pro Kunde?
(Vielleicht solltest Du auch überhaupt dieses Verhalten abschalten, das das fehlende Group ermöglicht, aber das bedarf natürlich intensiver Tests )