Ayuda Con query

31/10/2005 - 20:53 por Victor M | Informe spam
Hola
Necesito hacer un query que haga lo siguiente:
necesito hacer un udpate a un campo de una tabla(A) en este caso Llafac que
va a hacer igual al campo llaveu de otra tabla(B) siempre y cuando el campo
numfac de la tabla(A) sea igual al campo numfac de la tabla B
seria algo asi pero no me funciona
update A set A.llafac= B.llaveu
where A.numfac=B.numfac
Soy nuevo en SQL y les agradeceria mucho su ayuda
Saludos

Preguntas similare

Leer las respuestas

#1 Jose Luis
31/10/2005 - 21:14 | Informe spam
Lo que debes de hacer es lo siguiente:
update A set llafac= B.llaveu
from A inner join B on A.numfac = B.numfac
o
update A set llafac= B.llaveu
from A, B
where A.numfac = B.numfac

te recomendaria la primera opcion



"Victor M" escribió en el mensaje
news:
Hola
Necesito hacer un query que haga lo siguiente:
necesito hacer un udpate a un campo de una tabla(A) en este caso Llafac


que
va a hacer igual al campo llaveu de otra tabla(B) siempre y cuando el


campo
numfac de la tabla(A) sea igual al campo numfac de la tabla B
seria algo asi pero no me funciona
update A set A.llafac= B.llaveu
where A.numfac=B.numfac
Soy nuevo en SQL y les agradeceria mucho su ayuda
Saludos


Respuesta Responder a este mensaje
#2 Penta
31/10/2005 - 21:25 | Informe spam
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.
Respuesta Responder a este mensaje
#3 Victor M
31/10/2005 - 21:35 | Informe spam
Muchas Gracias pero ya lo habia hecho pero con un cursor que do de la
siguiente manera

Declare @llaveu char(10),
@numfac char(10)
DECLARE actualiza CURSOR FOR
SELECT doc.llaveu,doc.numfac FROM cxchdo doc join cxccmo mov on
doc.numfac=mov.numfac
OPEN actualiza
FETCH NEXT FROM actualiza INTO @llaveu,@numfac
WHILE @@FETCH_STATUS = 0
BEGIN
update cxccmo set llafac=@llaveu where numfac=@numfac
FETCH NEXT FROM actualiza INTO @llaveu,@numfac
END
CLOSE actualiza
DEALLOCATE actualiza
Saludos
"Penta" wrote in message
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.

Respuesta Responder a este mensaje
#4 Maxi
31/10/2005 - 21:43 | Informe spam
Hola, ojo con los cursores:

http://www.configuracionesintegrale...p?articulo)5


Salu2
Maxi [MVP SQL SERVER]


"Victor M" escribió en el mensaje
news:
Muchas Gracias pero ya lo habia hecho pero con un cursor que do de la
siguiente manera

Declare @llaveu char(10),
@numfac char(10)
DECLARE actualiza CURSOR FOR
SELECT doc.llaveu,doc.numfac FROM cxchdo doc join cxccmo mov on
doc.numfac=mov.numfac
OPEN actualiza
FETCH NEXT FROM actualiza INTO @llaveu,@numfac
WHILE @@FETCH_STATUS = 0
BEGIN
update cxccmo set llafac=@llaveu where numfac=@numfac
FETCH NEXT FROM actualiza INTO @llaveu,@numfac
END
CLOSE actualiza
DEALLOCATE actualiza
Saludos
"Penta" wrote in message
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.





Respuesta Responder a este mensaje
#5 Jose Luis
31/10/2005 - 21:51 | Informe spam
Hola Penta,

El hecho de utilizar un inner join es mas que todo por utilizar los indices
que puedas tener en tus tablas, es mucho mas efectivo asi como nativo del
SQL Server, el otro solo se tiene por compatibilidad del SQL Ansi.

Saludos


"Penta" escribió en el mensaje
news:
Hola Jose Luis.
Solo por curiosidad, por que recomiendas la primera opcion ?
La verdad es que no suelo utilizar inner y generalmente mis querys son
como la segunda opcion que indicaste.

Salu2.
Penta.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida