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

[SOLUCIONADO] La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a . . .

Estas en el tema de La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a . . . en el foro de SQL Server en Foros del Web. Hola a todos, Mi problema es el siguiente: Al ejecutar este update me sa el siguiente resultado: Mens. 512, Nivel 16, Estado 1, Línea 1 ...
  #1 (permalink)  
Antiguo 24/01/2013, 10:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a . . .

Hola a todos,

Mi problema es el siguiente:

Al ejecutar este update me sa el siguiente resultado:
Mens. 512, Nivel 16, Estado 1, Línea 1
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
Se terminó la instrucción.


Mi update es el siguiente:
update clean_loc_CS
set tel_local= '01' + (SELECT c_ladas.lada
FROM c_ladas INNER JOIN
clean_loc_CS ON c_ladas.Id_estado = clean_loc_CS.id_delegacion AND c_ladas.municipio = clean_loc_CS.municipios AND
c_ladas.digitos = clean_loc_CS.carac_tel_loc) + tel_local
where carac_tel_loc = 7



Se que me esta devolviendo varios valores, mi problema es como lo podria resolver?

De antemano gracias por su apoyo.
  #2 (permalink)  
Antiguo 24/01/2013, 11:13
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: La subconsulta ha devuelto más de un valor, lo que no es correcto cuando v

mmm no he probado esto pero es una idea, tal vez te sirva de algo

update clean_loc_CS set b.tel_local = '01' + a.lada + b.tel_local
from c_ladas a, clean_loc_CS
WHERE a.Id_estado = b.id_delegacion AND a.municipio = b.municipios AND
a.digitos = b.carac_tel_loc and b.carac_tel_loc = 7

no olvides ejecutarlo en una base de prueba antes para que no afecte tus dats reales. Saludos
  #3 (permalink)  
Antiguo 24/01/2013, 11:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: La subconsulta ha devuelto más de un valor, lo que no es correcto cuando v

Ok, gracias amigo, dame unos minutos y te diré cual fue el resultado.

Saludos.
  #4 (permalink)  
Antiguo 24/01/2013, 11:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: La subconsulta ha devuelto más de un valor, lo que no es correcto cuando v

update clean_loc_CS
set tel_local= '01' + (SELECT c_ladas.lada
FROM c_ladas INNER JOIN
clean_loc_CS ON c_ladas.Id_estado = clean_loc_CS.id_delegacion AND c_ladas.municipio = clean_loc_CS.municipios AND
c_ladas.digitos = clean_loc_CS.carac_tel_loc)
+ tel_local
where carac_tel_loc = 7


el problema es ese query, estas haciendo un + (query) y se espera que el query regrese solo un valor y a lo que veo ese query este regresando mas de un valor.


saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 24/01/2013, 12:00
 
Fecha de Ingreso: diciembre-2012
Mensajes: 83
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: La subconsulta ha devuelto más de un valor, lo que no es correcto cuando v

Ahora si:

update clean_loc_CS set tel_local = '01' + a.lada + b.tel_local
from c_ladas a, clean_loc_CS b
WHERE a.Id_estado = b.id_delegacion AND a.municipio = b.municipios AND
a.digitos = b.carac_tel_loc and b.carac_tel_loc = 7

La otra tenia errores de sintaxis, ve con esta a ver que tal ;)
  #6 (permalink)  
Antiguo 24/01/2013, 12:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: La subconsulta ha devuelto más de un valor, lo que no es correcto cuando v

Si me di cuenta pero al igual no pasa nado ya las corregí, y sobre la consulta ya quedo en ok si realizo los cambio, era tan sencillo y me estaba complicando mi vida.

Gracias amigo, muchas gracias.

Etiquetas: Ninguno
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:03.