Téměř PŘESNĚ stejná otázka zodpovězena zde . Předpokladem je, že byste potřebovali další sloupec, který by fungoval jako průběžný součet pro daného zákazníka...
Vytvořil jsem tabulku a simuloval data přesně jako vaše výsledky a došel jsem k VAŠIM přesným výsledkům... Problém byl v tom, že MySQL nějak uplatňovalo kritéria DVAKRÁT na řádek a nechápal jsem, jak nebo proč... SILNĚ mám podezření, že jde o chybu, ale nejde to popsat. Každopádně MÁM opravu, která vynutí vnitřní "PreQuery" jako základ a vrátí VŠECHNY záznamy z toho s @SQLVars a poté z toho použije klauzuli WHERE...
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