J
CREATE DEFINER = 'root'@'localhost'
PROCEDURE PLANILLA_OO1_25_PROMEDIO_VENTAS()
BEGIN
declare fecha_actual date;
declare fecha_12 date;
declare fecha_11 date;
declare fecha_10 date;
declare fecha_09 date;
declare fecha_08 date;
declare fecha_07 date;
declare fecha_06 date;
declare fecha_05 date;
declare fecha_04 date;
declare fecha_03 date;
declare fecha_02 date;
declare fecha_01 date;
declare mes_12 varchar(2);
declare mes_11 varchar(2);
declare mes_10 varchar(2);
declare mes_09 varchar(2);
declare mes_08 varchar(2);
declare mes_07 varchar(2);
declare mes_06 varchar(2);
declare mes_05 varchar(2);
declare mes_04 varchar(2);
declare mes_03 varchar(2);
declare mes_02 varchar(2);
declare mes_01 varchar(2);
declare anno_12 varchar(4);
declare anno_11 varchar(4);
declare anno_10 varchar(4);
declare anno_09 varchar(4);
declare anno_08 varchar(4);
declare anno_07 varchar(4);
declare anno_06 varchar(4);
declare anno_05 varchar(4);
declare anno_04 varchar(4);
declare anno_03 varchar(4);
declare anno_02 varchar(4);
declare anno_01 varchar(4);
declare VALOR_01 INT (11);
declare VALOR_02 INT (11);
declare VALOR_03 INT (11);
declare VALOR_04 INT (11);
declare VALOR_05 INT (11);
declare VALOR_06 INT (11);
declare VALOR_07 INT (11);
declare VALOR_08 INT (11);
declare VALOR_09 INT (11);
declare VALOR_10 INT (11);
declare VALOR_11 INT (11);
declare VALOR_12 INT (11);
declare ANO_MES_12 int(11);
declare ANO_MES_11 int(11);
declare ANO_MES_10 int(11);
declare ANO_MES_09 int(11);
declare ANO_MES_08 int(11);
declare ANO_MES_07 int(11);
declare ANO_MES_06 int(11);
declare ANO_MES_05 int(11);
declare ANO_MES_04 int(11);
declare ANO_MES_03 int(11);
declare ANO_MES_02 int(11);
declare ANO_MES_01 int(11);
declare VALOR_SUMADO_PROMEDIO INT (11);
declare codigo_new varchar(20);
DECLARE no_hay_mas_registros INT DEFAULT 0;
DECLARE elCursor CURSOR FOR SELECT CODIGO FROM PLANILLA_001 ;
SET fecha_actual = (SELECT CURDATE());
SET fecha_12 = (SELECT fecha_actual - INTERVAL 1 MONTH);
SET fecha_11 = (SELECT fecha_actual - INTERVAL 2 MONTH);
SET fecha_10 = (SELECT fecha_actual - INTERVAL 3 MONTH);
SET fecha_09 = (SELECT fecha_actual - INTERVAL 4 MONTH);
SET fecha_08 = (SELECT fecha_actual - INTERVAL 5 MONTH);
SET fecha_07 = (SELECT fecha_actual - INTERVAL 6 MONTH);
SET fecha_06 = (SELECT fecha_actual - INTERVAL 7 MONTH);
SET fecha_05 = (SELECT fecha_actual - INTERVAL 8 MONTH);
SET fecha_04 = (SELECT fecha_actual - INTERVAL 9 MONTH);
SET fecha_03 = (SELECT fecha_actual - INTERVAL 10 MONTH);
SET fecha_02 = (SELECT fecha_actual - INTERVAL 11 MONTH);
SET fecha_01 = (SELECT fecha_actual - INTERVAL 12 MONTH);
SET mes_12 = (SELECT DATE_FORMAT(fecha_12,'%m'));
SET mes_11 = (SELECT DATE_FORMAT(fecha_11,'%m'));
SET mes_10 = (SELECT DATE_FORMAT(fecha_10,'%m'));
SET mes_09 = (SELECT DATE_FORMAT(fecha_09,'%m'));
SET mes_08 = (SELECT DATE_FORMAT(fecha_08,'%m'));
SET mes_07 = (SELECT DATE_FORMAT(fecha_07,'%m'));
SET mes_06 = (SELECT DATE_FORMAT(fecha_06,'%m'));
SET mes_05 = (SELECT DATE_FORMAT(fecha_05,'%m'));
SET mes_04 = (SELECT DATE_FORMAT(fecha_04,'%m'));
SET mes_03 = (SELECT DATE_FORMAT(fecha_03,'%m'));
SET mes_02 = (SELECT DATE_FORMAT(fecha_02,'%m'));
SET mes_01 = (SELECT DATE_FORMAT(fecha_01,'%m'));
SET anno_12 = (SELECT DATE_FORMAT(fecha_12,'%Y'));
SET anno_11 = (SELECT DATE_FORMAT(fecha_11,'%Y'));
SET anno_10 = (SELECT DATE_FORMAT(fecha_10,'%Y'));
SET anno_09 = (SELECT DATE_FORMAT(fecha_09,'%Y'));
SET anno_08 = (SELECT DATE_FORMAT(fecha_08,'%Y'));
SET anno_07 = (SELECT DATE_FORMAT(fecha_07,'%Y'));
SET anno_06 = (SELECT DATE_FORMAT(fecha_06,'%Y'));
SET anno_05 = (SELECT DATE_FORMAT(fecha_05,'%Y'));
SET anno_04 = (SELECT DATE_FORMAT(fecha_04,'%Y'));
SET anno_03 = (SELECT DATE_FORMAT(fecha_03,'%Y'));
SET anno_02 = (SELECT DATE_FORMAT(fecha_02,'%Y'));
SET anno_01 = (SELECT DATE_FORMAT(fecha_01,'%Y'));
SET ANO_MES_12 = CONCAT (anno_12,mes_12);
SET ANO_MES_11 = CONCAT (anno_11,mes_11);
SET ANO_MES_10 = CONCAT (anno_10,mes_10);
SET ANO_MES_09 = CONCAT (anno_09,mes_09);
SET ANO_MES_08 = CONCAT (anno_08,mes_08);
SET ANO_MES_07 = CONCAT (anno_07,mes_07);
SET ANO_MES_06 = CONCAT (anno_06,mes_06);
SET ANO_MES_05 = CONCAT (anno_05,mes_05);
SET ANO_MES_04 = CONCAT (anno_04,mes_04);
SET ANO_MES_03 = CONCAT (anno_03,mes_03);
SET ANO_MES_02 = CONCAT (anno_02,mes_02);
SET ANO_MES_01 = CONCAT (anno_01,mes_01);
open elCursor;
-- se van tomando los datos hasta que el cursor llegue al final
bucle: loop
fetch elCursor into codigo_new;
if (no_hay_mas_registros = 1) then
leave bucle;
end if;
SET VALOR_12 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_12
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_12
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_12
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_12
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_12
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_12
) T);
SET VALOR_11 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_11
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_11
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_11
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_11
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_11
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_11
) T);
SET VALOR_10 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_10
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_10
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_10
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_10
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_10
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_10
) T);
SET VALOR_09 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_09
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_09
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_09
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_09
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_09
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_09
) T);
SET VALOR_08 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_08
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_08
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_08
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_08
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_08
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_08
) T);
SET VALOR_07 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_07
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_07
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_07
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_07
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_07
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_07
) T);
SET VALOR_06 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_06
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_06
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_06
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_06
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_06
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_06
) T);
SET VALOR_05 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_05
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_05
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_05
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_05
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_05
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_05
) T);
SET VALOR_04 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_04
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_04
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_04
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_04
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_04
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_04
) T);
SET VALOR_03 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_03
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_03
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_03
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_03
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_03
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_03
) T);
SET VALOR_02 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_02
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_02
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_02
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_02
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_02
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_02
) T);
SET VALOR_01 = (SELECT SUM(T.VENTAS_EST)
FROM (SELECT VENTAS_EST FROM tb1 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_01
UNION
SELECT VENTAS_EST FROM tb2 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_01
UNION
SELECT VENTAS_EST FROM tb3 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_01
UNION
SELECT VENTAS_EST FROM tb4 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_01
UNION
SELECT VENTAS_EST FROM tb5 WHERE CODIGO_EST=codigo_new AND FECHAE_EST= ANO_MES_01
UNION
SELECT VENTAS_EST FROM tb6 WHERE CODIGO_EST = codigo_new AND FECHAE_EST= ANO_MES_01
) T);
SET VALOR_SUMADO_PROMEDIO = (select IFNULL(VALOR_01,0)+IFNULL(VALOR_02,0)+IFNULL(VALOR_03,0)+IFNULL(VALOR_04,0)+IFNULL(VALOR_05,0)+IFNULL(VALOR_06,0)+IFNULL(VALOR_07,0)+IFNULL(VALOR_08,0)+IFNULL(VALOR_09,0)+IFNULL(VALOR_10,0)+IFNULL(VALOR_11,0)+IFNULL(VALOR_12,0))/12 ;
IF (SELECT count(CODIGO) as conteo from PLANILLA_001 WHERE CODIGO = codigo_new ) = 1 THEN
UPDATE PLANILLA_001 SET PROMEDIO = VALOR_SUMADO_PROMEDIO WHERE CODIGO = codigo_new ;
END IF;
end loop bucle;
close elCursor;
END