Чтобы получить последнее значение precio_in
(я предполагаю, что имеется в виду значение, связанное с MAX(id_stock)
), вам нужно выполнить агрегацию для db1_stock
в производной таблице, а затем JOIN
для значения db1_stock
:
SELECT s.id_stock,
s.precio_in,
s.codigo,
a.cantidad - COALESCE(sv.suma_salidas,0) as cantidad,
x.status
FROM db1_stock s
JOIN (
SELECT codigo,
MAX(id_stock) AS id_stock,
SUM(cantidad) AS cantidad
FROM db1_stock
GROUP BY codigo
) a ON a.codigo = s.codigo AND a.id_stock = s.id_stock
LEFT JOIN (
SELECT COALESCE(SUM(cant_ser),0) AS suma_salidas, codigo
FROM db1_servicios
GROUP BY codigo
) sv ON sv.codigo = s.codigo
JOIN db1_oc x ON s.oc_id = x.oc_id
WHERE x.status = 'EN BODEGA'
ORDER BY x.fecha_oc DESC
Вывод:
id_stock precio_in codigo cantidad status
19 4000 PRUEBA 6 EN BODEGA
20 4200 PRUEBA2 1 EN BODEGA
Демонстрация по SQLFiddle