Ini menyakitkan untuk dilakukan di MySQL karena beberapa alasan. Pertama, MySQL tidak memiliki dukungan yang sangat baik untuk jumlah kumulatif, yang ingin Anda bandingkan.
Dan kedua, set hasil Anda sedikit lemah. Lebih masuk akal untuk menunjukkan semua ins
catatan yang berkontribusi pada setiap outs
merekam, bukan hanya salah satunya.
Untuk tujuan ini, Anda dapat menggunakan gabungan pada jumlah kumulatif, yang terlihat seperti ini:
select o.*, (o.to_quantity - o.quantity) as from_quantity,
i.*
from (select o.*,
(select sum(o2.quantity)
from outs o2
where o2.id <= o.id
) as to_quantity
from outs o
) o join
(select i.*,
(select sum(i2.quantity)
from ins i2
where i2.id <= i.id
) as to_quantity
from ins i
) i
on (o.to_quantity - o.quantity) < i.to_quantity and
o.to_quantity > (i.to_quantity - i.quantity)
Di sini adalah SQL Fiddle.