Hola,
yo creo que el problema es que necesitas almacenar en una variable el
conteo parcial y a este compararlo con lo que necesitas, si se pudiera
hacer asi, seria barbaro:
SET @tot = 24;
SET @n = 0;
SELECT codigo_entrada,stock,fecha_vencimiento
FROM stock_bodega
WHERE codigo_bodega = 5
AND codigo_producto = 5
AND (@n:=@n+stock < @tot)
ORDER BY fecha_vencimiento DESC, codigo_entrada;
el tema es que usando variables en la clausuala WHERE, realiza la
operacion pero no almacena su valor para una posterior evaluacion, se
comporta como una constante.
Por lo menos no encontre la forma de hacerlo asi, tengo un problema similar.