Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

SQL Manager para Mysql - crear procedure llena tablas con cursor y bucle

Estas en el tema de SQL Manager para Mysql - crear procedure llena tablas con cursor y bucle en el foro de Mysql en Foros del Web. Buenos dias , necesito ayuda con una parte de mi proyecto de trabajo , lo que ocurre es que tengo una tabla temporal con 3 ...
  #1 (permalink)  
Antiguo 29/04/2015, 08:06
 
Fecha de Ingreso: abril-2015
Ubicación: Lima
Mensajes: 1
Antigüedad: 8 años, 11 meses
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
  #2 (permalink)  
Antiguo 29/04/2015, 08:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: SQL Manager para Mysql - crear procedure llena tablas con cursor y bucle

Empeiza por darle una leída a esto: Cómo recorrer iterativamente el resultado de una consulta dentro de un procedimiento almacenado
Luego veremos lo que no se entienda.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bases-de-datos-general, manager, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:25.