C'est pénible à faire dans MySQL pour plusieurs raisons. Tout d'abord, MySQL ne prend pas très bien en charge les sommes cumulées, ce que vous voulez comparer.
Et deuxièmement, votre ensemble de résultats est un peu faible. Il est plus logique de montrer tous les ins
enregistrements qui contribuent à chaque outs
enregistrer, pas seulement l'un d'entre eux.
Pour cela, vous pouvez utiliser une jointure sur les sommes cumulées, qui ressemble à ceci :
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)
Ici est le violon SQL.