[RESUELTO] SQL para actualizar campos de una tabla

Discute sobre las herramientas de la base de datos
Responder
mferrete
Mensajes: 24
Registrado: Mar May 28, 2019 10:07 am

[RESUELTO] SQL para actualizar campos de una tabla

Mensaje por mferrete »

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.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: SQL para actualizar campos de una tabla

Mensaje por Longi »

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

UPDATE "CLIENTS","Tabla_Clients"
pasaría a

Código: Seleccionar todo

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
Libreoffice 6.4.2, en Windows 10
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: SQL para actualizar campos de una tabla

Mensaje por FJCC-ES »

Sugiero que guarda una copia de la base de datos antes de ejecutar este comando.

Código: Seleccionar todo

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")
mferrete
Mensajes: 24
Registrado: Mar May 28, 2019 10:07 am

Re: SQL para actualizar campos de una tabla

Mensaje por mferrete »

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

Re: SQL para actualizar campos de una tabla

Mensaje por mferrete »

Uff, estoy buscando pero no lo encuento...cómo hago para poner [RESUELTO] en el asunto??
Apache OpenOffice 4.1.7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: SQL para actualizar campos de una tabla

Mensaje por Longi »

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
Libreoffice 6.4.2, en Windows 10
Responder