Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

actualizar varios registros con id

Estas en el tema de actualizar varios registros con id en el foro de Bases de Datos General en Foros del Web. tengo una bd, la cual esta compuesta por puros ID y me gustria cambiarlos por textos correspondientes a estos ID ejemplo concentrado region | 1 ...
  #1 (permalink)  
Antiguo 11/04/2011, 13:32
 
Fecha de Ingreso: abril-2011
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta actualizar varios registros con id

tengo una bd, la cual esta compuesta por puros ID y me gustria cambiarlos por textos correspondientes a estos ID ejemplo
concentrado
region |
1
1
3
3
5
7


zona
ID nom_zona
1 | zona oriente
3 | zona poniente
5 | zona centro
7 | zona sur

, e intentado un Update anidado sin resultados..... ayúdenme porfavor
  #2 (permalink)  
Antiguo 11/04/2011, 14:17
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: actualizar varios registros con id

¿Cual es tu query y que error te da?
  #3 (permalink)  
Antiguo 11/04/2011, 15:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: actualizar varios registros con id

update concentrado
set id=t1.nom_zona
from
(select nom_zona from zona where id.concentrado=id.zona) as t1


Aqui nada mas tendrias que poner que tu campo id sea varchar no de tipo int :)

Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 11/04/2011, 15:40
 
Fecha de Ingreso: abril-2011
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: actualizar varios registros con id

el error que me sale es " La operación debe usar una consulta actualizable"

y el query es :

UPDATE concentrado
SET region= (SELECT id FROM zona
WHERE zona.nom_zona= concentrado.region)
WHERE nom_zona IN ('1','3','5');
  #5 (permalink)  
Antiguo 11/04/2011, 16:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: actualizar varios registros con id

UPDATE concentrado
SET region= t1.id
from
(SELECT id FROM zona
WHERE zona.nom_zona= concentrado.region) t1
WHERE nom_zona IN ('1','3','5');


Prueba ese y nos dices :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 11/04/2011, 16:59
 
Fecha de Ingreso: abril-2011
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: actualizar varios registros con id

error de sintaxis (falta operador) en la expresion

y una pregunta de donde sacas el t1.id
  #7 (permalink)  
Antiguo 12/04/2011, 06:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: actualizar varios registros con id

Código SQL:
Ver original
  1. UPDATE concentrado INNER JOIN zona ON concentrado.region = zona.nom_zona
  2. SET concentrado.region= zona.id
  3. WHERE concentrado.nom_zona IN (1,3,5);

Me gustaría que postearas la estructura de las tablas (el CREATE TABLE...) para estar seguro de estar escribiendo bien la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 12/04/2011, 09:01
 
Fecha de Ingreso: abril-2011
Mensajes: 4
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: actualizar varios registros con id

gnzsoloyo muchas gracias ya quedo probe tu consulta solo tube que modificar unas cuantas cositas y ya quedo mil gracias quedo asi

UPDATE concentrado INNER JOIN zona ON concentrado.region = zona.id
SET concentrado.region= zona.nom_zona
WHERE concentrado.nom_zona IN (1,3,5);

Etiquetas: access, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:02.