Dit is om een aantal redenen pijnlijk om te doen in MySQL. Ten eerste biedt MySQL geen erg goede ondersteuning voor cumulatieve bedragen, en dat is wat je wilt vergelijken.
En ten tweede is je resultatenset een beetje zwak. Het is logischer om alles te laten zien de ins
records die bijdragen aan elke outs
opnemen, niet slechts één van hen.
Voor dit doel kunt u een join gebruiken op cumulatieve bedragen, die er als volgt uitziet:
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)
Hier is de SQL Fiddle.