> Faqs > Actualizar una tabla con los datos de otra tabla de la misma BBDD.

Actualizar una tabla con los datos de otra tabla de la misma BBDD.

Buenas tardes Ruben: Dispongo de 2 tablas de la misma base de datos: tabla 'usuario' con los campos: numero, nombre, valoracion_total y y tabla 'incidencia' con los campos:id, num_cliente, estado, valoracion_reparacion. Necesito actualizar el campo valoracion_total de cada usuario, con el valor medio de valoraciones de todas las reparaciones finalizadaspor cada uno de ellos. Como podría hacerlo?. Estoy haciendo lo siguiente:

UPDATE usuario SET usuario.valoracion_total = FLOOR(AVG(incidencia.valoracion_reparacion)) WHERE usuario.numero=incidencia.num_cliente AND incidencia.estado='Finalizada';

Pero no funciona. Gracias de antemano por tu ayuda. Saludos cordiales!!

Respuestas

select *

-- update u set u.valoracion_total= FLOOR(AVG(i.valoracion_reparacion)) from usuario u
inner join incidencia i on u.numero = i.num_cliente
where i.estado='Finalizado'

Holas, te faltó agregar la otra tabla inner join incidencia con sus amarres (inner join, left join, right jon) dependiendo de lo que requieras obtener. Haber si esto te ayuda.

Zusetty Deliana
0

Estimada Zusetty, muchas gracias por tu ayuda, pero aún me sigue dando error 1064 a pesar de tu aportación. No sé si es que no me ha quedado clara tu respuesta y es un error mio o cual puede ser el motivo. El ejercicio consiste en "Actualizar el campo valoración total de cada usuario con el valor medio de valoraciones de todas las reparaciones finalizadas por cada uno de ellos.". Dispongo de una tabla Usuario y de una Tabla Incidencia. En la Tabla Usuario se encuentran las columnas: numero, nombre, apellidos, puntos acumulados, valoración total y especialista. En la Tabla Incidencia, se encuentran las columnas: ID, descripción, estado, puntos coste, valoracion_reparacion y num_cliente. Num_cliente de la tabla Incidencia está relacionada con el campo numero de la Tabla Usuario. He realizado esta nueva opción que creo es la que me sugieres y me da error 1064. UPDATE usuario SET usuario.valoracion_total = FLOOR(AVG(incidencia.valoracion_reparacion)) FROM usuario INNER JOIN incidencia ON usuario.numero=incidencia.num_cliente WHERE incidencia.estado='Finalizada'; Recibe saludos cordiales.

marina
2 1
Estimada Zusetty, todo el que conozco me dice que no sabe como ayudarme, por lo visto es una tarea bastante complicada. En fin, gracias por tu ayuda, pero sigo sin encontrar la solución.