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

[SOLUCIONADO] Agrupar y Grabar

Estas en el tema de Agrupar y Grabar en el foro de Mysql en Foros del Web. Tengo una tabla con estos campo: Cita: codigo / nombres Y para contabilizar la cantidad de veces que se repiten los registros por cada campo ...
  #1 (permalink)  
Antiguo 02/02/2016, 15:27
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Agrupar y Grabar

Tengo una tabla con estos campo:
Cita:
codigo / nombres
Y para contabilizar la cantidad de veces que se repiten los registros por cada campo "codigo" utilizo esto:
Código SQL:
Ver original
  1. SELECT codigo, COUNT(codigo)
  2. FROM ejemplo
  3. GROUP BY codigo
  4. HAVING COUNT(codigo)>0
Cómo hago para grabar este resultado en otra tabla que tiene el campo "periodo"??

Otra tabla:
Cita:
codigo / cantidad
Gracias.
__________________
Todos somos iguales. NO! a la violencia de género.

Última edición por gnzsoloyo; 02/02/2016 a las 16:42 Razón: Pésimamente etiquetado
  #2 (permalink)  
Antiguo 02/02/2016, 16:14
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Agrupar y Grabar

Mira esto

INSERT INTO SELECT
  #3 (permalink)  
Antiguo 04/02/2016, 17:10
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Respuesta: Agrupar y Grabar

Voy a plantear mejor mi problema, tengo una tabla SALDOS:
Código:
codigo / cantidad
100 / 0
200 / 0
300 / 0
400 / 0
500 / 0
Y tengo una tabla MOVI:
Código:
codigo / dato
100 / aaa
100 / bbbb
100 / ggggg
200 / dddd
200 / ffffff
300 / jjjjj
300 / gggggg
300 / kkkkk
500 / qqqqqq
Si ejecuto esto:
Código SQL:
Ver original
  1. SELECT codigo, COUNT(codigo)
  2. FROM movi
  3. GROUP BY codigo
  4. HAVING COUNT(codigo)>0
Obtengo:
Código:
codigo/COUNT(codigo)
100/3
200/2
300/3
500/1
Este resultado quiero actualizarlo en la tabla SALDOS.
Lo puedo hacer con una sola sentencia?
__________________
Todos somos iguales. NO! a la violencia de género.

Última edición por gnzsoloyo; 04/02/2016 a las 17:20
  #4 (permalink)  
Antiguo 04/02/2016, 17:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Agrupar y Grabar

Claro que si, seria algo como esto:

Código MySQL:
Ver original
  1. update saldos
  2. set cantidad=t1.total
  3. SELECT codigo, COUNT(codigo) as total
  4. FROM movi
  5. GROUP BY codigo
  6. HAVING COUNT(codigo)>0  ) as t1 where saldos.codigo=t1.codigo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 04/02/2016, 17:37
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Respuesta: Agrupar y Grabar

Cita:
Iniciado por Libras Ver Mensaje
Claro que si, seria algo como esto:

Código MySQL:
Ver original
  1. update saldos
  2. set cantidad=t1.total
  3. SELECT codigo, COUNT(codigo) as total
  4. FROM movi
  5. GROUP BY codigo
  6. HAVING COUNT(codigo)>0  ) as t1 where saldos.codigo=t1.codigo
Me sale este error:
Código HTML:
 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from( SELECT codigo, COUNT(codigo) as total FROM movi GROUP BY codigo HAVI' at line 3
__________________
Todos somos iguales. NO! a la violencia de género.
  #6 (permalink)  
Antiguo 04/02/2016, 18:02
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: Agrupar y Grabar

Código MySQL:
Ver original
  1. UPDATE saldos s,
  2.     (SELECT
  3.         codigo, COUNT(1) total
  4.     FROM
  5.         movi
  6.     GROUP BY codigo
  7.     HAVING COUNT(codigo) > 0) t1
  8.     cantidad = t1.total
  9.     s.codigo = t1.codigo;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 05/02/2016, 10:43
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
De acuerdo Respuesta: Agrupar y Grabar

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código MySQL:
Ver original
  1. UPDATE saldos s,
  2.     (SELECT
  3.         codigo, COUNT(1) total
  4.     FROM
  5.         movi
  6.     GROUP BY codigo
  7.     HAVING COUNT(codigo) > 0) t1
  8.     cantidad = t1.total
  9.     s.codigo = t1.codigo;
Gracias. Funciona.
Aunque en la lógica que usa me he perdido un poco.
__________________
Todos somos iguales. NO! a la violencia de género.
  #8 (permalink)  
Antiguo 05/02/2016, 11:05
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: Agrupar y Grabar

Es más o menos sencilla :La subconsulta genera una tabla derivada en memoria que se usa en el JOIN. Sólo genera el cálculo y lo usas para actualizar la primera tabla.
__________________
¿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: 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 22:40.