SQL Server - Copiar datos de un campo a otro en la misma tabla de forma masiva

 
Vista:
sin imagen de perfil

Copiar datos de un campo a otro en la misma tabla de forma masiva

Publicado por Luis (2 intervenciones) el 24/11/2020 19:56:44
Hola a todos

Necesito ayuda de la comunidad para resolver un problema que tengo, les planteo mi problema:

Tengo una base de datos en SQL server (dbdatos) en ella tengo una tabla que almacena la información de usuarios (usuario) y tengo otra tabla que almacena varias direcciones de los usuarios de la tabla usuario (direcciones), la tabla de direcciones se relaciona con la tabla usuario atreves de un código único para cada usuario (code) (pero para este problema que tengo en particular no se requiere del uso de la tabla usuario)

La minoría de usuarios posee mas de una dirección (donde vive, donde estudia, donde trabaja)

[code] - [street] - [addresstype]
U100014 - calle 1 avenida 3 sector S - vivienda
U100014 - calle 9 Avenida 1 sector G - trabajo
U100014 - calle 3 avenida 9 sector H - estudio

pero hay usuarios que su vivienda es su lugar de trabajo o estudio o ambas por ende en su momento dejaron la direccion vacia.

U100015 - calle 4 avenida 2 sector T - vivienda
U100015 - - trabajo
U100015 - - estudio

en ocasiones si el usuario tiene un familiar (hermano, primo) a ese familiar se le asigna un codigo U100015-01 entonces en algunos casos el código tiene 7 letras o 10 letras (no es con todos los usuarios)

lo que necesito realizar es pasar la dirección de vivienda a los campos que estén vacíos de trabajo o estudio (la dirección de vivienda siempre tiene información)

cada code se repite 3 veces con su respectivo addresstype pero necesito en una sola query copiar la dirección a los campos vacíos ya que son muchos los registros que posee la tabla.

Agradecería mucho su apoyo y disculpas por las molestias ocasionadas.
saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Copiar datos de un campo a otro en la misma tabla de forma masiva

Publicado por Isaias (4558 intervenciones) el 25/11/2020 21:09:57
Yo haría algo como esto

1
2
UPDATE MyTable SET [street]  = [addresstype]
WHERE [street] IS NULL OR [street] = ''

Antes, saca un REPALDO de tu tabla

1
SELEC * INTO MyTabla_back FROM MyTabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Copiar datos de un campo a otro en la misma tabla de forma masiva

Publicado por Luis (2 intervenciones) el 25/11/2020 22:41:10
Gracias por tu respuesta, pero no obtengo el resultado esperado,

Con esta manera la consulta iniciaría y en el primer registro verificaría la condición que si esta vacío tome el campo addresstype y lo coloque en el campo Street pero en la linea del primer registro y así iría registro por registro.

Lo que necesito es que pase por el primer registro verifique que addresstype sea "vivienda" y tome el valor del campo street y lo lleve a los próximos registros (segundo registro, tercer registro o en el registro donde se encuentre el mismo code) y lo coloque en los campos street siempre y cuando estén vacíos.

Gracias por el apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Copiar datos de un campo a otro en la misma tabla de forma masiva

Publicado por Isaias (4558 intervenciones) el 25/11/2020 23:29:15
Veamos, si los demás registros que tienen el mismo CODE, su campo esta vacío [street] y no el [addresstype], los va a actualizar tambien, ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar