Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberta Schimidt

Procedure

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.