Ayuda con UPDATE en SQLServer 2005

12/03/2009 - 16:43 por Mario V. | Informe spam
Saludos amigos!

Por favor si alguien puede ayudarme con lo siguiente:

Tengo que actualizar el campo TABLA1.CIUDAD (si es NULL) desde la Tabla
MOVIMIENTOS
con relacion al campo TARJETA

Hasta ahora la sentencia va asi:

UPDATE Tabla1 SET Ciudad = MOV.Ciudad
FROM Movimientos MOV
WHERE Tabla1.Ciudad IS NULL
AND MOV.TARJETA = Tabla1.TARJETA

(Sin problemas hasta aqui.)

Pero me han pedido que la actualice con la CIUDAD del ultimo registro (campo
FECHA mas reciente) de MOVIMIENTOS,
ya que pueden haber varios movimientos con diferente fecha

y esta sentencia obiamente toma la primera Ciudad deMovimientos que
encuentra


De antemano agradezco su ayuda

Mario
 

Leer las respuestas

#1 Carlos Sacristan
12/03/2009 - 17:12 | Informe spam
Por ejemplo,

; WITH cte AS (
SELECT ROW_NUMBER() OVER(PARTITION BY tarjeta ORDER BY fecha DESC) rn,
ciudad, tarjeta
FROM movimientos
)
UPDATE Tabla1 SET Ciudad = cte.Ciudad
FROM cte
WHERE Tabla1.Ciudad IS NULL
AND cte.TARJETA = Tabla1.TARJETA
AND cte.rn = 1;


Un saludo
-
www.navento.com
Servicios de Localización GPS


"Mario V." wrote:

Saludos amigos!

Por favor si alguien puede ayudarme con lo siguiente:

Tengo que actualizar el campo TABLA1.CIUDAD (si es NULL) desde la Tabla
MOVIMIENTOS
con relacion al campo TARJETA

Hasta ahora la sentencia va asi:

UPDATE Tabla1 SET Ciudad = MOV.Ciudad
FROM Movimientos MOV
WHERE Tabla1.Ciudad IS NULL
AND MOV.TARJETA = Tabla1.TARJETA

(Sin problemas hasta aqui.)

Pero me han pedido que la actualice con la CIUDAD del ultimo registro (campo
FECHA mas reciente) de MOVIMIENTOS,
ya que pueden haber varios movimientos con diferente fecha

y esta sentencia obiamente toma la primera Ciudad deMovimientos que
encuentra


De antemano agradezco su ayuda

Mario





Preguntas similares