USE dm;

/*OBTENIENDO LA INFORMACIÓN DE CURO Y DE BUEN CLIENTE*/

DELIMITER $$
CREATE PROCEDURE transformacion_bueno()
BEGIN

	DECLARE curp_clasificacion VARCHAR(15);
	DECLARE clasificacion_clasificacion VARCHAR(6);

	DECLARE fin_registros_clasificacion INT DEFAULT 0;

	DECLARE clasificacion_cursor CURSOR FOR
		SELECT bd_1.clasificacion_cliente.curp,bd_1.clasificacion_cliente.clasificacion FROM bd_1.clasificacion_cliente;

	DECLARE CONTINUE HANDLER FOR NOT FOUND SET fin_registros_clasificacion = 1;

	OPEN clasificacion_cursor;

	WHILE (fin_registros_clasificacion = 0) DO
		FETCH clasificacion_cursor INTO curp_clasificacion,clasificacion_clasificacion;

		IF(clasificacion_clasificacion = 'BUENO') THEN
			SET clasificacion_clasificacion = 'SI';
		ELSE 
			SET clasificacion_clasificacion = 'NO';
		END IF;

		IF(curp_clasificacion!="")THEN
			INSERT INTO dm.estadistica(curp,buen_cliente)VALUES(curp_clasificacion,clasificacion_clasificacion);
			SET curp_clasificacion = "";
			SET clasificacion_clasificacion = "";
		END IF;

		
	END WHILE;


END $$


/*COMPLETANDO LAS PROPIEDADES DE LOS CLIENTES SEGÚN LOS CRITERIOS*/

DELIMITER $$
CREATE PROCEDURE transformacion_extras()
BEGIN

	
	DECLARE i_edad INT;
	DECLARE i_hijos INT;
	DECLARE i_salario FLOAT;
	DECLARE n_edad VARCHAR(8);
	DECLARE n_hijos VARCHAR(3);
	DECLARE n_deporte VARCHAR(10);
	DECLARE n_salario VARCHAR(8);
	DECLARE n_curp VARCHAR(15);

	DECLARE fin_registros_clasificacion INT DEFAULT 0;

	DECLARE datos_extra_cursor CURSOR FOR
		SELECT bd_2.datos_cliente_extra.curp, bd_2.datos_cliente_extra.edad, bd_2.datos_cliente_extra.practica_deporte,
		bd_2.datos_cliente_extra.hijos,bd_2.datos_cliente_extra.salario
 FROM bd_2.datos_cliente_extra;

	DECLARE CONTINUE HANDLER FOR NOT FOUND SET fin_registros_clasificacion = 1;

	OPEN datos_extra_cursor;
	
	SET SQL_SAFE_UPDATES = 0;

	WHILE (fin_registros_clasificacion = 0) DO
		FETCH datos_extra_cursor INTO n_curp,i_edad,n_deporte,i_hijos,i_salario;

			/*Categorizando la edad*/
			IF(i_edad < 30) THEN
				SET n_edad = 'JOVEN';
			ELSE
				SET n_edad = 'MAYOR';
			END IF;

			/*Categorizando el deporte*/
			IF(n_deporte ='Ninguno') THEN
				SET n_deporte = 'NO';
			ELSE
				SET n_deporte = 'SI';
			END IF;

			
			/*Categorizando hijos*/
			IF(i_hijos = 0) THEN
				SET n_hijos = 'NO';
			ELSE
				SET n_hijos = 'SI';
			END IF;

			/*Categorizando el salario*/
			IF(i_salario >= 10000) THEN
				SET n_salario = 'ALTO';
			ELSEIF(i_salario >=5000 && i_salario <10000)THEN 
				SET n_salario = 'MEDIO';
			ELSE
				SET n_salario = 'BAJO';
			END IF;

		UPDATE dm.estadistica SET edad = n_edad, deporte = n_deporte, hijos = n_hijos, salario = n_salario 
			WHERE curp = n_curp;

		SET i_edad = 0;
		SET n_deporte = "";
		SET n_curp = "";
		SET i_hijos = 0;
		SET i_salario = 0;
		SET n_curp = "";
		SET n_edad = "";

	END WHILE;


END $$