Næsten PRÆCIS samme spørgsmål besvares her . Forudsætningen er, at du skal bruge en anden kolonne for at fungere som en løbende total for den pågældende kunde...
Jeg oprettede tabel og simulerede data nøjagtigt som dine resultater og kom frem til DINE nøjagtige resultater... Problemet var på en eller anden måde, at MySQL anvendte kriterierne TO GANGE pr. række og forstod ikke hvordan eller hvorfor... Jeg har stærk mistanke om, at det var en fejl, men kan ikke beskrive det. Under alle omstændigheder har jeg en rettelse, der fremtvinger en indre "PreQuery" som grundlag, og returnerer ALLE poster fra det med @SQLVars og derefter anvender en WHERE-sætning fra det...
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