DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`historico_joined`(IN idART INT, IN wh_joined INT, IN v_virtual INT) BEGIN DECLARE datFEC DATETIME; SELECT Fechainventario INTO datFEC FROM tblContadores; SET @a = 0; SELECT DATE(Fecha) Fecha, Entrada, Salida, OK, Alias, Referencia, id, @a := @a + IFNULL(Entrada,0) - IFNULL(Salida,0) acumulado, F5, v_virtual, CodigoTrabajador FROM ( SELECT TR.landing Fecha, C.Cantidad Entrada, NULL Salida, (TR.received != FALSE) OK, P.Proveedor Alias, E.Referencia Referencia, E.Id_Entrada id, TR.delivered F5, tra.CodigoTrabajador FROM Compres C JOIN Entradas E USING (Id_Entrada) JOIN travel TR ON TR.id = E.travel_id JOIN Proveedores P USING (Id_Proveedor) LEFT JOIN Articles a ON a.Id_Article = C.Id_Article LEFT JOIN Tipos ti ON ti.Id_Tipo = a.tipo_id LEFT JOIN Trabajadores tra ON tra.Id_Trabajador = ti.Id_Trabajador LEFT JOIN warehouse_joined wj ON wj.warehouse_id = TR.warehouse_id WHERE TR.landing >= datFEC AND wh_joined IN (wj.warehouse_alias_id , 0) AND C.Id_Article = idART AND E.Inventario = 0 AND E.Redada = 0 UNION ALL SELECT TR.shipment Fecha, NULL Entrada, C.Cantidad Salida, TR.delivered OK, P.Proveedor Alias, E.Referencia Referencia, E.Id_Entrada id, TR.delivered F5, tra.CodigoTrabajador FROM Compres C JOIN Entradas E USING (Id_Entrada) JOIN travel TR ON TR.id = E.travel_id JOIN Proveedores P USING (Id_Proveedor) LEFT JOIN Articles a ON a.Id_Article = C.Id_Article LEFT JOIN Tipos ti ON ti.Id_Tipo = a.tipo_id LEFT JOIN Trabajadores tra ON tra.Id_Trabajador = ti.Id_Trabajador LEFT JOIN warehouse_joined wj ON wj.warehouse_id = TR.warehouse_id_out WHERE TR.shipment >= datFEC AND wh_joined IN (wj.warehouse_alias_id,0) AND Id_Proveedor <> 4 AND C.Id_Article = idART AND E.Inventario = 0 AND E.Redada = 0 UNION ALL SELECT T.Fecha Fecha, NULL Entrada, M.Cantidad Salida, (M.OK <> 0 OR T.Etiquetasemitidas <> 0 OR T.Factura IS NOT NULL) OK, T.Alias Alias, T.Localizacion Referencia, T.Id_Ticket id, T.PedidoImpreso EtiquetasEmitidas, tr.CodigoTrabajador FROM Movimientos M JOIN Tickets T USING (Id_Ticket) JOIN Clientes C ON C.Id_Cliente = T.Id_Cliente LEFT JOIN Trabajadores tr ON tr.Id_Trabajador = C.Id_Trabajador LEFT JOIN warehouse_joined wj ON wj.warehouse_id = T.warehouse_id WHERE T.Fecha >= datFEC AND M.Id_Article = idART AND wh_joined IN (wj.warehouse_alias_id , 0) ) AS Historico ORDER BY Fecha, Entrada DESC, OK DESC; END$$ DELIMITER ;