Como hacer este UPDATE?????

04/08/2008 - 18:26 por hamil1978 | Informe spam
Hola amigos:

Tengo los siguientes datos en una tabla

Articulo Periodo Mes Cantidad
Articulo 1 2001 1 10
Articulo 1 2001 2 0
Articulo 1 2001 3 0
Articulo 1 2001 4 15
Articulo 1 2001 5 4
Articulo 1 2001 6 0
Articulo 1 2001 7 0
Articulo 1 2001 8 6
Articulo 1 2001 9 4
Articulo 1 2001 10 12
Articulo 1 2001 11 0
Articulo 1 2001 12 0

El resultado final debe de ser el siguiente:

Articulo Periodo Mes Cantidad Inventario al Mes
Articulo 1 2001 1 10 10
Articulo 1 2001 2 0 10
Articulo 1 2001 3 0 10
Articulo 1 2001 4 15 15
Articulo 1 2001 5 4 4
Articulo 1 2001 6 0 4
Articulo 1 2001 7 0 4
Articulo 1 2001 8 6 6
Articulo 1 2001 9 4 4
Articulo 1 2001 10 12 12
Articulo 1 2001 11 0 12
Articulo 1 2001 12 0 12

La query tiene que actualizar los valores 0, reemplazando con el
anterior. Por ejemplo en el Mes 2 y 3, como no hubieron ventas, se
tiene que mantener el inventario es decir actualizarlo con 10 y 10
para el Mes 2 y Mes 3.

Ayudenme amigos.

Gracias.

Saludos
 

Leer las respuestas

#1 Jorge Gallego
13/08/2008 - 12:05 | Informe spam
Buenas tardes,

Con esta consulta obtendrías lo que quieres para inventario (he cambiado
periodo por ano):

select articulo, ano, mes, cantidad,
inventario case cantidad when 0
then
ISNULL((select top 1 b.cantidad from inventario b where a.articulo =
b.articulo and a.ano = b.ano and b.mes < a.mes and b.cantidad <> 0 order by
b.mes desc), 0)
else
cantidad
end
from inventario a
order by articulo, ano, mes

Por lo tanto para updatar con los valores que deseas deberías utilizar:

update inventario
set inventario = b.inventario
from inventario a
inner join
(
select articulo, ano, mes, cantidad,
inventario case cantidad when 0
then
ISNULL((select top 1 b.cantidad from inventario b where a.articulo =
b.articulo and a.ano = b.ano and b.mes < a.mes and b.cantidad <> 0 order by
b.mes desc), 0)
else
cantidad
end
from inventario a
) as b
on a.articulo=b.articulo and a.ano=b.ano and a.mes=b.mes

Saludos

Jorge

wrote in message
news:
Hola amigos:

Tengo los siguientes datos en una tabla

Articulo Periodo Mes Cantidad
Articulo 1 2001 1 10
Articulo 1 2001 2 0
Articulo 1 2001 3 0
Articulo 1 2001 4 15
Articulo 1 2001 5 4
Articulo 1 2001 6 0
Articulo 1 2001 7 0
Articulo 1 2001 8 6
Articulo 1 2001 9 4
Articulo 1 2001 10 12
Articulo 1 2001 11 0
Articulo 1 2001 12 0

El resultado final debe de ser el siguiente:

Articulo Periodo Mes Cantidad Inventario al Mes
Articulo 1 2001 1 10 10
Articulo 1 2001 2 0 10
Articulo 1 2001 3 0 10
Articulo 1 2001 4 15 15
Articulo 1 2001 5 4 4
Articulo 1 2001 6 0 4
Articulo 1 2001 7 0 4
Articulo 1 2001 8 6 6
Articulo 1 2001 9 4 4
Articulo 1 2001 10 12 12
Articulo 1 2001 11 0 12
Articulo 1 2001 12 0 12

La query tiene que actualizar los valores 0, reemplazando con el
anterior. Por ejemplo en el Mes 2 y 3, como no hubieron ventas, se
tiene que mantener el inventario es decir actualizarlo con 10 y 10
para el Mes 2 y Mes 3.

Ayudenme amigos.

Gracias.

Saludos

Preguntas similares