Bastará, creo, con añadir id_articulo DESC.
Código SQL:
Ver originalUPDATE activos INNER JOIN
(SELECT t1.id_articulo, t1.id_requisicion, t1.unidad, t1.descripcion, t1.cantidad FROM
(SELECT id_articulo, id_requisicion, unidad, descripcion, cantidad FROM `facturas2`
ORDER BY id_requisicion DESC, [B]id_articulo DESC[/B])t1
GROUP BY t1.id_articulo, t1.id_requisicion, t1.descripcion)t2 ON activos.descripcion = t2.descripcion
SET activos.cantidad = activos.cantidad - t2.cantidad
Explicación. Iré comentando "las capas de la cebolla" de este SQL, pero de dentro a fuera:
1) (SELECT id_articulo, id_requisicion, unidad, descripcion, cantidad FROM `facturas2`
ORDER BY id_requisicion DESC,
id_articulo DESC)t1
Seleccionas los campos ordenando por id_requisición descendente e id_articulo descendente, y cargas eso en una tabla virtual mediante el alias t1. El orden te colocará primero en esa tabla los que tienen los id_requisicion más altos, y, en caso de coincidencia en el id_requisicion, los que tienen un id_articulo más alto. El objetivo es recoger sólo los datos de id_requisicion más altos, y en caso de coincidencia, los de id_articulo más altos, algo que haremos en el punto 2.
2) (SELECT t1.id_articulo, t1.id_requisicion, t1.unidad, t1.descripcion, t1.cantidad FROM ... GROUP BY t1.id_articulo, t1.id_requisicion, t1.descripcion)t2
seleccionas de esa tabla virtual los campos, pero agrupando por id_articulo, id_requisicion, y descripcion, lo cual te deja, de los que coinciden en esos valores, el que está más arriba de la lista de la tabla virtual t1. Y a esa tabla virtual la llamas t2. No olvides que el GROUP BY, en caso de coincidencia de valor de campo agrupado, conserva el primer valor coincidente y los campos de ese registro.
3) UPDATE activos INNER JOIN... ON activos.descripcion = t2.descripcion ... SET activos.cantidad = activos.cantidad - t2.cantidad
cruzo las tabla activos con el resultado de la selección de 2, es decir con la tabla virtual t2, uniendo por descripcion (es el campo que coincide), y actualizo activos.cantidad poniendo en su lugar lo que había menos el valor de cantidad en la t2.