Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/04/2015, 08:06
Saul_010
 
Fecha de Ingreso: abril-2015
Ubicación: Lima
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Pregunta SQL Manager para Mysql - crear procedure llena tablas con cursor y bucle

Buenos dias , necesito ayuda con una parte de mi proyecto de trabajo , lo que ocurre es que tengo una tabla temporal con 3 campos (COD_2000/varchar , reghis/nteger ,reghisa/integer) , he insertado en esta tabla un query que posee cod_2000 , reghis lleno y reghisa llenado con ceros con un parametro para sacar el resultado por mes y los datos almacenados en esta tabla las he pasado a una tabla fisica , pero necesito saber como puedo agregarle los datos de una tabla (2) distinta que tiene tan solo en común cod_2000 y reghis con datos llenos a esta tabla fisica , relacionando el campo cod_2000 de la tabla fisica con la otra tabla (2) para que , por ejemplo , en un registro , busque por cod_2000 cual registro de la tabla(2) es identico en el cod_2000 y en su siguiente campo se llene con el respectivo reghisa.

No sé como realizarlo , pero me aconsejaron usar un bucle para rellenar los campos respectivos y un cursor para que lea registro por registro , aunque no se exactamente como emplearlo , y al tratar de crear un cursor en el Store procedure , al iniciar , me sale un error de escritura de codigo , aunque lo he revisado bien y he visto en varias paginas que se debe de escribir de la misma forma en la que hice , pero sigue dandome error en esa misma linea

espero que me puedan ayudar.
Código MySQL:
Ver original
  1.  
  2.  
  3. create temporary table  DATOS_HIS1 (
  4. COD_2000 varchar(9)not NULL,
  5. reghis1 INTEGER(5) not null,
  6. reghisa integer(5) not null
  7. );
  8. INSERT INTO DATOS_HIS1
  9. SELECT COD_2000 , sum(his1.tot_reg)AS reghis1,0  FROM mhis2015.his1 WHERE MES = MES_ GROUP BY COD_2000;
  10.  
  11. delete from prueba_01a ;
  12.  
  13. insert into prueba_01A
  14. select * from datos_his1;
  15.  
  16. SELECT * FROM PRUEBA_01A;
  17.  
  18. /*Aquí esta la declaración que me envía error*/
  19. declare cursor1 cursor
  20. for
  21. select COD_2000,reghis1,reghisa from PRUEBA_01A;
  22.  
  23. declare COD_2000 varchar(9);
  24. declare reghis1 integer(5);
  25. declare reghisa integer(5);
  26.  
  27. open cursor1
  28.  
  29. fetch next from cursor1
  30. into COD_2000 , reghis1, reghisa:
  31.  
  32. while fetch_status = 0
  33. fetch next from cursor1 into COD_2000 , reghis1, reghisa;
  34.  
  35.  
  36.  


Muchas gracias

Última edición por gnzsoloyo; 29/04/2015 a las 08:19