Página 1 de 1

[RESUELTO] SQL para actualizar campos de una tabla

NotaPublicado: Vie Sep 13, 2019 9:39 am
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

Re: SQL para actualizar campos de una tabla

NotaPublicado: Vie Sep 13, 2019 1:14 pm
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   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! ;)

Re: SQL para actualizar campos de una tabla

NotaPublicado: Vie Sep 13, 2019 1:31 pm
por FJCC-ES
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")

Re: SQL para actualizar campos de una tabla

NotaPublicado: Vie Sep 13, 2019 3:00 pm
por mferrete
Mil gracias, FJCC-ES, ha funcionado correctamente!!

Re: SQL para actualizar campos de una tabla

NotaPublicado: Vie Sep 13, 2019 3:25 pm
por mferrete
Uff, estoy buscando pero no lo encuento...cómo hago para poner [RESUELTO] en el asunto??

Re: SQL para actualizar campos de una tabla

NotaPublicado: Vie Sep 13, 2019 5:14 pm
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! ;)