DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`historico_absoluto`(IN idART INT, IN wh INT, IN datfecha DATETIME) BEGIN DECLARE inv_calculado INT; DECLARE inv INT; DECLARE today DATETIME; DECLARE fecha_inv DATETIME; SET today = util.VN_CURDATE(); CREATE OR REPLACE TEMPORARY TABLE historico_pasado SELECT * 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 FROM Compres C -- mirar perque no entra en received INNER JOIN Entradas E USING (Id_Entrada) INNER JOIN travel TR ON TR.id = E.travel_id INNER JOIN Proveedores P USING (Id_Proveedor) WHERE TR.landing >= '2001-01-01' AND Id_proveedor <> 4 AND wh IN (TR.warehouse_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 FROM Compres C INNER JOIN Entradas E USING (Id_Entrada) INNER JOIN travel TR ON TR.id = E.travel_id INNER JOIN Proveedores P USING (Id_Proveedor) WHERE TR.shipment >= '2001-01-01' AND wh = TR.warehouse_id_out AND Id_Proveedor <> 4 AND C.Id_Article = idART AND E.Inventario = 0 AND E.Redada = 0 UNION ALL SELECT t.shipped Fecha, NULL Entrada, M.Cantidad Salida, (M.OK <> 0 OR t.isLabeled <> 0 OR t.refFk IS NOT NULL) OK, t.nickname Alias, t.refFk Referencia, t.id Id_Ticket, t.isPrinted PedidoImpreso FROM Movimientos M INNER JOIN ticket t USING (Id_Ticket) JOIN Clientes C ON C.Id_Cliente = t.clientFk WHERE t.shipped >= '2001-01-01' AND M.Id_Article = idART AND wh IN (t.warehouseFk , 0) ) t1 ORDER BY Fecha, Entrada DESC, OK DESC; SELECT sum(Entrada) - sum(Salida) INTO inv_calculado FROM historico_pasado WHERE Fecha < datfecha; SELECT p1.*, NULL v_virtual FROM( SELECT datfecha Fecha, inv_calculado Entrada, NULL Salida, 1 OK, 'Inventario calculado' Alias, '' Referencia, 0 id, 1 F5 UNION ALL SELECT * FROM historico_pasado WHERE Fecha >= datfecha ) p1; DROP TEMPORARY TABLE historico_pasado; END$$ DELIMITER ;