SQL Server - Problema con UPDATE + un select

 
Vista:

Problema con UPDATE + un select

Publicado por Marc (3 intervenciones) el 24/01/2013 00:54:12
Hola cuando ejecuto esta sentencia :
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


Me da el siguiente error:
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.



Alguien me puede ayudar, indicándome colo lo podría resolver?

De antemano muchas gracias.

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

Problema con UPDATE + un select

Publicado por smith (1 intervención) el 24/01/2013 07:22:26
Hola Marc, el problema es tal y como te comenta, que a subconsulta que es esta:
(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)

devuelve mas de un registro, por lo tanto a la hora de realizar la suma no sabe que valor sumar.

Yo optimizaría la subconsulta para que únicamente te devuelva un registro.
También puedes limitar el numero de registros con top 1, aunque podría no ser muy fiable el resultado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
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

Problema con UPDATE + un select

Publicado por Isaias (4558 intervenciones) el 24/01/2013 16:38:20
Como bien comenta SMITH, tu SELECT, te esta regresando mas de un valor, si ejecutas solo el select, te daras cuenta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema con UPDATE + un select

Publicado por Marc (3 intervenciones) el 24/01/2013 16:55:56
Gracias a ambos por su apoyo, hasta cierto punto si me doy cuenta de mi error y en realidad en vez de suma estoy concatenando por ejemplo

en mi tabla clean_loc_CS tengo el estado, municipio teléfono sin lada y cuantos dígitos tiene y en mi tabla de c_ladas tengo el estado, el municipio, la lada y de cuantos dígitos es el teléfono local si coincide estos datos con la primera tabla entonces va a poner el 01 seguido de su lada (que es el select) seguido del teléfono.

Se que devuelve varios valores mi pregunta es y creo no me di a entender (la cual les pido una disculpa) es de que otra forma podría actualizar estos datos?

De antemano gracias.

Y si creen que soy muy redundante es que soy bien wey pa explicar.

Saludos.
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

Problema con UPDATE + un select

Publicado por Marc (3 intervenciones) el 24/01/2013 19:27:56
Listo ya quedo resuelto agadesco el apoyo de todos les dejo el query:

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


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar