Dies ist in MySQL aus mehreren Gründen mühsam. Erstens bietet MySQL keine sehr gute Unterstützung für kumulative Summen, was Sie vergleichen möchten.
Und zweitens ist Ihre Ergebnismenge etwas schwach. Es ist sinnvoller, alle anzuzeigen die ins
Aufzeichnungen, die zu jedem outs
beitragen Rekord, nicht nur einer von ihnen.
Zu diesem Zweck können Sie einen Join für kumulierte Summen verwenden, der so aussieht:
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 ist die SQL-Geige.