Código:
y ´lo que deseo hacer con eso es imprimir los registros con si fuera un selectDELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `BDCheck`.`sp_comp_riesgo`(in fecha_inic date, in fecha_fin date) BEGIN DECLARE done INT DEFAULT 0; DECLARE emp VARCHAR(255); DECLARE tipo_form INT(8); DECLARE cod VARCHAR(16); DECLARE nomb VARCHAR(120); DECLARE dist VARCHAR(60); DECLARE fechaI DATE; DECLARE fechaF DATE; DECLARE emp2 VARCHAR(255); DECLARE cur_pedido CURSOR FOR select verif_cen_lab as empresa, id_tip_formulario, concat(id_cliente,'-',id_pedido) as codigo, concat(ape_pat,' ',ape_mat,' ',verif_nombre) as nombre, b.dsc_distrito as distrito, concat(fecha,' ',hora) as fechaIngreso, fecha_act as fechaAct from t_pedido a inner join t_distrito b on a.id_distrito=b.id_distrito and fecha between fecha_inic and fecha_fin UNION select nom_empresa as empresa, id_tip_formulario, concat(id_cliente,'-',id_pedido) as codigo, concat(ape_pat,' ',ape_mat,' ',verif_nombre) as nombre, b.dsc_distrito as distrito, concat(fecha,' ',hora) as fechaIngreso, fecha_act as fechaAct from t_pedido a inner join t_distrito b on a.id_distrito=b.id_distrito and fecha between fecha_inic and fecha_fin UNION select verif_direccion as empresa,id_tip_formulario, concat(id_cliente,'-',id_pedido) as codigo, concat(ape_pat,' ',ape_mat,' ',verif_nombre) as nombre, b.dsc_distrito as distrito, concat(fecha,' ',hora) as fechaIngreso, fecha_act as fechaAct from t_pedido a inner join t_distrito b on a.id_distrito=b.id_distrito and fecha between fecha_inic and fecha_fin where id_pers_cont='194'; -- pasamos los valores al cursor cur_riesgo DECLARE cur_riesgo CURSOR FOR SELECT pClave FROM t_riesgo; -- FOR SELECT REPLACE (pClave,'%',' ') DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur_pedido; OPEN cur_riesgo; REPEAT FETCH cur_pedido INTO emp, tipo_form,cod, nomb, dist, fechaI,fechaF; FETCH cur_riesgo INTO emp2; if NOT done THEN IF emp2 like'%emp%' THEN select emp, tipo_form,cod,nomb,dist, fechaI,fechaF; END IF; END IF; UNTIL done END REPEAT; CLOSE cur_riesgo; CLOSE cur_pedido; END$$ DELIMITER ;
osea pretendo que trabajen como 2 for() los cursores para que compare emp con emp2 con un like y si emp2 esta dentro de emp que imprima un registro y sai sucesivamente, hasta la ultima igualdad, haber si alguien me ayuda a optimizar. se lo agradezco de antemano.
SAludos.