Hampir TEPAT pertanyaan yang sama dijawab di sini . Premisnya adalah Anda akan membutuhkan kolom lain untuk bertindak sebagai total berjalan untuk pelanggan yang bersangkutan...
Saya membuat tabel dan mensimulasikan data persis seperti hasil Anda dan menghasilkan hasil yang tepat ANDA ... Masalahnya adalah entah bagaimana MySQL menerapkan kriteria DUA KALI per baris dan tidak mengerti bagaimana atau mengapa ... Saya SANGAT curiga ini bug, tapi tidak bisa menggambarkannya. Bagaimanapun, saya memiliki perbaikan yang memaksa "PreQuery" dalam sebagai dasar, dan mengembalikan SEMUA catatan dari itu dengan @SQLVars dan kemudian menerapkan klausa WHERE dari itu...
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