[RESUELTO] SQL para actualizar campos de una tabla

Discute sobre las herramientas de la base de datos

[RESUELTO] SQL para actualizar campos de una tabla

Notapor mferrete » Vie Sep 13, 2019 9:39 am

Hola, no consigo que me funcione una sentencia SQL para actualizar unos campos de una tabla de Clientes (CLIENTS) con datos de otra tabla (Tabla_Clients). He estado mirando otras entradas del Forum que me han orientado en cómo montar la query, pero la verdad que no encuentro porqué no me funciona.

La query la lanzo desde Herramientas>SQL, y es:

UPDATE "CLIENTS","Tabla_Clients"

SET "CLIENTS"."Nom_cli" = "Tabla_Clients"."Nom_cli" ,
"CLIENTS"."NIF_cli" = "Tabla_Clients"."NIF_cli",
"CLIENTS"."Adreça_Social" = "Tabla_Clients"."Adreça_cli",
"CLIENTS"."Pais_Social" = "Tabla_Clients"."Pais_cli",
"CLIENTS"."CP_Social" = "Tabla_Clients"."CP_cli",
"CLIENTS"."Pob_Social" = "Tabla_Clients"."Pob_cli",
"CLIENTS"."Prov_Social" = "Tabla_Clients"."Prov_cli",
"CLIENTS"."Mail_cli" = "Tabla_Clients"."Mail_cli"

FROM "CLIENTS", "Tabla_Clients"

WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"

Y el error que me da es: Unexpected token ,, requires SET in statement [UPDATE "CLIENTS",]

Muchas gracias

Maite
Última edición por mferrete el Vie Sep 13, 2019 7:46 pm, editado 1 vez en total
Apache OpenOffice 4.1.6
mferrete
 
Mensajes: 14
Registrado: Mar May 28, 2019 10:07 am

Re: SQL para actualizar campos de una tabla

Notapor Longi » Vie Sep 13, 2019 1:14 pm

Buenas!

A primera vista, y sin ser ningún lince en SQL, parece que te sobra el nombre de la segunda tabla (y la coma) en el inicio de la sentencia:
Código: Seleccionar todo   Expandir vistaContraer vista
UPDATE "CLIENTS","Tabla_Clients"
pasaría a
Código: Seleccionar todo   Expandir vistaContraer vista
UPDATE "CLIENTS"

ya que la que actualizas es solo "CLIENTS".
No he hecho pruebas, pero quizá esto resuelva.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 587
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: SQL para actualizar campos de una tabla

Notapor FJCC-ES » Vie Sep 13, 2019 1:31 pm

Sugiero que guarda una copia de la base de datos antes de ejecutar este comando.
Código: Seleccionar todo   Expandir vistaContraer vista
UPDATE "CLIENTS"

SET "CLIENTS"."Nom_cli" = (SELECT "Nom_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli") ,
"CLIENTS"."NIF_cli" = (SELECT ""NIF_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"),
"CLIENTS"."Adreça_Social" = (SELECT "Adreça_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"),
"CLIENTS"."Pais_Social" = (SELECT "Pais_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"),
"CLIENTS"."CP_Social" = (SELECT "CP_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"),
"CLIENTS"."Pob_Social" = (SELECT "Pob_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"),
"CLIENTS"."Prov_Social" = (SELECT "Prov_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli"),
"CLIENTS"."Mail_cli" = (SELECT "Mail_cli" FROM "Tabla_Clients" WHERE "CLIENTS"."Codi_cli" = "Tabla_Clients"."Codi_cli")

WHERE "CLIENTS"."Codi_cli" IN (SELECT "Codi_cli" FROM "Tabla_Clients")
FJCC-ES
 
Mensajes: 695
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: SQL para actualizar campos de una tabla

Notapor mferrete » Vie Sep 13, 2019 3:00 pm

Mil gracias, FJCC-ES, ha funcionado correctamente!!
Apache OpenOffice 4.1.6
mferrete
 
Mensajes: 14
Registrado: Mar May 28, 2019 10:07 am

Re: SQL para actualizar campos de una tabla

Notapor mferrete » Vie Sep 13, 2019 3:25 pm

Uff, estoy buscando pero no lo encuento...cómo hago para poner [RESUELTO] en el asunto??
Apache OpenOffice 4.1.6
mferrete
 
Mensajes: 14
Registrado: Mar May 28, 2019 10:07 am

Re: SQL para actualizar campos de una tabla

Notapor Longi » Vie Sep 13, 2019 5:14 pm

Como se ha podido comprobar, no soy ningún lince en SQL....
En cuanto a resolver el tema (título):
Primer mensaje que escribiste, editar y escribes [RESUELTO] delante del título que habías puesto en un principio.
Otro saludo! ;)
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 587
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España


Volver a Base

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados