Ayuda con una subsonsulta (update)
Publicado por YYanes (20 intervenciones) el 01/09/2017 20:19:59
Hola amig@s:
llevo algún tiempo haciendo un Script de una base de datos para un sistema, y ya son tantas líneas de código (3871 líneas para ser exactos) que ya mi cabeza no genera mucho. Lo que necesito es lo siguiente:
Tengo por ejemplo una tabla Unidad_B que tiene atributos comunes con una tabla Unidad_A. En cada caso tengo el atributo "Id" y el atributo "siglas", pero lo que necesito es actualizar los Id en la tabla Unidad_B según sus siglas comunes en la tabla Unidad_A, por ejemplo:
Unidad_A:
Id Siglas
11 'abc'
12 'def'
13 'hij'
14 'klm'
Unidad_B
Id Siglas
21 'abc'
22 'def'
23 'hij'
24 'klm'
Necesito que al correr la sentencia la tabla Unidad_B quede de la siguiente forma:
Unidad_B
Id Siglas
11 'abc'
12 'def'
13 'hij'
14 'klm'
es decir, que se actualice el campo 'Id' según los valores de las Siglas correspondientes en Unidad_A.
He probado con la siguiente sentencia, pero la subconsulta me arroja más de un resultado, y por tanto, me da error:
update Unidad_B set Unidad_B.id = (select Unidad_A.id from Unidad_A where Unidad_A.siglas = Unidad_B.siglas);
¿Alguna idea? Un GigaSaludo y muchas gracias de antemano!!!
llevo algún tiempo haciendo un Script de una base de datos para un sistema, y ya son tantas líneas de código (3871 líneas para ser exactos) que ya mi cabeza no genera mucho. Lo que necesito es lo siguiente:
Tengo por ejemplo una tabla Unidad_B que tiene atributos comunes con una tabla Unidad_A. En cada caso tengo el atributo "Id" y el atributo "siglas", pero lo que necesito es actualizar los Id en la tabla Unidad_B según sus siglas comunes en la tabla Unidad_A, por ejemplo:
Unidad_A:
Id Siglas
11 'abc'
12 'def'
13 'hij'
14 'klm'
Unidad_B
Id Siglas
21 'abc'
22 'def'
23 'hij'
24 'klm'
Necesito que al correr la sentencia la tabla Unidad_B quede de la siguiente forma:
Unidad_B
Id Siglas
11 'abc'
12 'def'
13 'hij'
14 'klm'
es decir, que se actualice el campo 'Id' según los valores de las Siglas correspondientes en Unidad_A.
He probado con la siguiente sentencia, pero la subconsulta me arroja más de un resultado, y por tanto, me da error:
update Unidad_B set Unidad_B.id = (select Unidad_A.id from Unidad_A where Unidad_A.siglas = Unidad_B.siglas);
¿Alguna idea? Un GigaSaludo y muchas gracias de antemano!!!
Valora esta pregunta


0