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

UPDATE de un campo de una tabla sumando de otra

Estas en el tema de UPDATE de un campo de una tabla sumando de otra en el foro de Mysql en Foros del Web. Hola... Tengo un gran problema. Por lo que sé, con MySQL 3.18 no puedo utilizar selects anidados. Tengo una tabla, usuarios , que está relacionada ...
  #1 (permalink)  
Antiguo 22/04/2006, 07:01
 
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 44
Antigüedad: 21 años, 2 meses
Puntos: 0
UPDATE de un campo de una tabla sumando de otra

Hola... Tengo un gran problema.

Por lo que sé, con MySQL 3.18 no puedo utilizar selects anidados.

Tengo una tabla, usuarios, que está relacionada con la tabla grupo por ID_grupo. Es decir, cada usuario pertenece a un grupo, y por lo tanto tiene un ID_grupo.

En cada grupo hay un campo, puntos, que marca la suma de los puntos de cada uno de los usuarios de ese grupo (ventas_en_euros).

Quiero hacer una consulta UPDATE de la tabla grupo que coja y sume todos los puntos de cada uno de los usuarios que pertenezcan a cada grupo.

Y hago esto, pero no funciona:

UPDATE grupo
LEFT JOIN usuario ON grupo.ID_grupo = usuario.ID_grupo
SET grupo.puntos=SUM(usuario.ventas_en_euros)
WHERE usuario.ID_grupo IS NULL


Me da el "error 1111: Invalid use of group function"

Alguien me puede ayudar, por favor?? Estoy desesperado.

Un saludo a todos.
  #2 (permalink)  
Antiguo 25/04/2006, 10:50
 
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 44
Antigüedad: 21 años, 2 meses
Puntos: 0
¡No me puedo creer que nadie pueda ayudarme!

Expertos, ¡dónde estáis!

Ay Dios mío, esto va a matarme, ¡qué estrés!

Un saludo!!
  #3 (permalink)  
Antiguo 25/04/2006, 11:52
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
¿Realmente necesitas guardar ese dato?. Como bien decís, ese dato lo podés obtener sumando los puntos de todos los usuarios del grupo. Por lo tanto, cuando lo necesites, realizas esa consulta y listo, no necesitas guardar el dato. Además, si lo haces de esta forma, vas a estar duplicando información, lo que te puede llevar a tener inconsistencia en los datos.
Si aún asi queres guardar el dato, quizá tendrias que pensar en hacerlo no solo con consultas, sino con la ayuda de algun script (por ejemplo un script en php) que realize ese trabajo.
Saludos.
  #4 (permalink)  
Antiguo 09/05/2006, 09:11
 
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 44
Antigüedad: 21 años, 2 meses
Puntos: 0
Es que la suma se hará una vez al día (cuando me pasen la tabla que copio desde otra web), y en cambio las consultas a grupos se hacen a cada momento. Mejor que la suma ya esté hecha que no sumar el dato para cada grupo cada vez...
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:27.