La consulta es la siguiente
Código MySQL :
SET @var_amount = 22; SELECT * FROM ( SELECT existencia.*, if ((@var_amount := @var_amount - ex_cantidad) > 0, ex_cantidad, ex_cantidad + @var_amount) as total FROM existencia WHERE idproducto = 1 ORDER BY ex_fecha DESC ) AS tmp WHERE total > 0
Esta consulta suma hasta que la cantidad en @var_amount sea igualada y me muestra cuantos tomó de cada dato.
Por su respuesta gracias.