Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
DROP PROCEDURE IF EXISTS emporium.sp_BuscaVendaParcelada;
DELIMITER $$
CREATE PROCEDURE emporium.sp_BuscaVendaParcelada(IN dataIN DATE, IN lojaIN INT(10))
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE vPdv INT (10);
DECLARE vLoja INT (10);
DECLARE vData DATE;
DECLARE vValor INT(20);
DECLARE cursorVendas CURSOR FOR
SELECT store_key, pos_number, fiscal_date FROM accum_media
WHERE fiscal_date = dataIN
AND media_id = 14
AND pos_number <> 0
GROUP BY store_key, pos_number;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cursorVendas;
DROP TABLE IF EXISTS temp_VendaParc;
CREATE TEMPORARY TABLE temp_VendaParc
(
id_venda int(10) primary key auto_increment
, pdv int(10)
, loja int(10)
, data date
, valor int (20)
)
ENGINE=MEMORY;
REPEAT
FETCH cursorVendas INTO vLoja, vPdv, vData;
SELECT SUM(ft094_ems.ValorDaOperacao) as valor, ft094_ems.CodigoDaLoja, ft094_ems.NumeroDoPDV, DataPDV
INTO vValor, vLoja, vPdv, vData
FROM ft094_ems
WHERE CodigoDaLoja = vLoja
and NumeroDoPDV = vPdv
and DataPDV = date_format(vData, '%Y%m%d' )
and TipoDeOperacao = '112'
GROUP BY CodigoDaLoja, NumeroDoPDV;
INSERT INTO temp_VendaParc (pdv, loja, data, valor) VALUES (vPdv, vLoja, vData, vValor);
UNTIL done END REPEAT;
CLOSE cursorVendas;
SELECT * FROM temp_VendaParc;
END;
Tenho essa procedure, só que ela está inserindo duas vezes o ultimo valor dentro da tabela temporária, alguém sabe o que pode ser ?
Obrigada.
Carregando comentários...