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

[SOLUCIONADO] insertar datos de una tabla otra

Estas en el tema de insertar datos de una tabla otra en el foro de Mysql en Foros del Web. Muy buenos días! Tengo un problema y espero me puedan ayudar, tengo una base de datos: col1 col2 col3 a1 b1 $5 a1 b2 $10 ...
  #1 (permalink)  
Antiguo 27/10/2014, 11:52
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
insertar datos de una tabla otra

Muy buenos días! Tengo un problema y espero me puedan ayudar, tengo una base de datos:

col1 col2 col3
a1 b1 $5
a1 b2 $10
a1 b3 $15
a1 b1 $20
a2 b1 $25
a3 b2 $30
a1 b1 $35
a1 b3 $40

Mediante esta consulta:

SELECT col1, col2, SUM(col3) suma
FROM tabla
GROUP BY col1, col2

Obtengo los siguientes datos:

$total a1+b1= 60
$total a1+b3 = 55

Estructurados así:

col1 col2 suma
a1 b1 60
a1 b3 55

el problema es que si quiero ahora insertarlos a una segunda tabla con la misma cantidad de columnas me da este error:

Operand should contain 1 column.

Segun veo no cuadran las columnas de procedencia con las de destino, alguien conoce el código mysql para llevar a cabo una consulta que inserte los datos tal y como deben ser?

De antemano muchas gracias!!!!
  #2 (permalink)  
Antiguo 27/10/2014, 12:03
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, 5 meses
Puntos: 2658
Respuesta: insertar datos de una tabla otra

Cita:
el problema es que si quiero ahora insertarlos a una segunda tabla con la misma cantidad de columnas me da este error:

Operand should contain 1 column.
¿Y cómo escribiste el INSERT que te da ese error?

Postea la query, no trabajamos con codigos imaginarios...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/10/2014, 12:22
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: insertar datos de una tabla otra

Una disculpa, aquí la consulta:
Código MySQL:
Ver original
  1. INSERT INTO tabla2 (colx, coly, colz) VALUES ((SELECT col1, col2, SUM(col3) colz FROM tabla1 GROUP BY col1, col2))

Última edición por gnzsoloyo; 27/10/2014 a las 13:24
  #4 (permalink)  
Antiguo 27/10/2014, 13:25
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, 5 meses
Puntos: 2658
Respuesta: insertar datos de una tabla otra

Bueno, es un error básico: La query devuelve al menos dos registros en tu caso, y VALUES sólo aplica a valores separados por comas de un único registro. Por eso ese mensaje.
Deberías haber buscado en Google por consultas de INSERT masivo, entonces habrías encontrado la soución rápidamente:
Código MySQL:
Ver original
  1. INSERT INTO tabla2 (colx, coly, colz)
  2. SELECT col1, col2, SUM(col3) colz
  3. FROM tabla1
  4. GROUP BY col1, col2;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/10/2014, 16:15
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: insertar datos de una tabla otra

Muchas gracias, me ha sido de gran utilidad!!!!

Etiquetas: select, sql, tabla
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 16:54.