Fast GENAU selbe Frage hier beantwortet . Die Prämisse ist, dass Sie eine weitere Spalte benötigen würden, um als laufende Summe für den betreffenden Kunden zu dienen...
Ich habe Tabellen- und Simulationsdaten genau wie Ihre Ergebnisse erstellt und bin zu IHREN genauen Ergebnissen gekommen ... Das Problem war irgendwie, dass MySQL die Kriterien ZWEIMAL pro Zeile anwendete und nicht verstand, wie oder warum ... Ich vermute STARK, dass es sich um einen Fehler handelt. kann es aber nicht beschreiben. Wie auch immer, ich habe einen Fix, der eine innere "PreQuery" als Grundlage erzwingt und ALLE Datensätze daraus mit @SQLVars zurückgibt und dann eine WHERE-Klausel daraus anwendet ...
select properSummed.*
from
( select
o.orderid,
o.price,
@RunningTotal := @RunningTotal + o.price as UnpaidSoFar
from
orders o,
(select @RunningTotal := 0 ) sqlvars
where o.ownerid = 1
and o.paymentstatus = 'unpaid' ) properSummed
where
properSummed.UnpaidSoFar <= 50