Điều này rất khó thực hiện trong MySQL vì một vài lý do. Đầu tiên, MySQL không hỗ trợ tốt cho các tổng tích lũy, đó là những gì bạn muốn so sánh.
Và thứ hai, tập kết quả của bạn hơi yếu. Sẽ có ý nghĩa hơn khi hiển thị tất cả ins
các bản ghi đóng góp vào mỗi outs
ghi lại, không chỉ một trong số chúng.
Vì mục đích này, bạn có thể sử dụng một phép kết hợp tính tổng tích lũy, trông giống như sau:
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)
Tại đây là SQL Fiddle.