37 lines
974 B
MySQL
37 lines
974 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_multipleBuy`(
|
||
|
vDate DATETIME,
|
||
|
vWarehouseFk INT
|
||
|
)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Updates the tmp.itemInventory table, adding the buy id.
|
||
|
*
|
||
|
* @param tmp.itemInventory(buy_id)
|
||
|
* @param vDate -> Date of the purchase operation.
|
||
|
* @param vWarehouseFk -> Identifier of the warehouse (warehouseId).
|
||
|
*/
|
||
|
ALTER TABLE tmp.itemInventory ADD IF NOT EXISTS buy_id INT;
|
||
|
|
||
|
CALL buyUltimate(vWarehouseFk, vDate);
|
||
|
|
||
|
CREATE OR REPLACE TEMPORARY TABLE tmp
|
||
|
(KEY (itemFk))
|
||
|
ENGINE = MEMORY
|
||
|
SELECT *
|
||
|
FROM (
|
||
|
SELECT itemFk, buyFk
|
||
|
FROM tmp.buyUltimate
|
||
|
ORDER BY (vWarehouseFk = warehouseFk) DESC, landing DESC
|
||
|
LIMIT 10000000000000000000
|
||
|
) t
|
||
|
GROUP BY itemFk;
|
||
|
|
||
|
UPDATE tmp.itemInventory ai
|
||
|
JOIN tmp t ON ai.id = t.itemFk
|
||
|
SET ai.buy_id = t.buyFk;
|
||
|
|
||
|
DROP TEMPORARY TABLE tmp, tmp.buyUltimate;
|
||
|
END$$
|
||
|
DELIMITER ;
|