Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/08/2011, 14:45
maloboy_2k
 
Fecha de Ingreso: octubre-2010
Ubicación: Palermo
Mensajes: 55
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Suma de Movimientos

Amigos estoy hace 10 días tratando de sacar esta consulta, a ver si me dan una idea, de porque el error....

Escenario:
Tabla 1-Articulos
id - Articulo - Stock
1 - zapallo - 10
2 - peras - 20
3 - Tomate - 12

Tabla 2-Movimientos
id - Articulo - Tipo_Mov - Cantidad
1 - zapallo - E - 20
2 - zapallo - E - 30
3 - peras - S - 5
4 - peras - E - 10

Tabla 3-Habilitados
id - articulo - perfil
1 - zapallo - 1
2 - peras - 1
3 - tomate - 0

La idea es actualizar el stock de la tabla articulos, sumando las "E" entradas y restando las "S" salidas de los movimientos, tomando como parametro los articulos habilitados "1" de la tabla Habilitados.

Para eso trate de hacer lo siguiente:

UPDATE articulos SET stock=calculo.cantidad
FROM articulos JOIN ( SELECT
sum(case tipo_mov
when 'E' then cantidad
when 'S' then -cantidad
end)
cantidad, tipo_mov, articulo
FROM movimientos
JOIN habilitados ON movimientos.articulo = habilitados.articulo
WHERE habilitados.perfil = 1
GROUP BY articulo, tipo_mov) calculo ON
articulos.articulo = calculo.articulo

Que es lo que me da esto?
Dos resultados por cada articulo. Cuando en realidad me tendria que dar uno solo.

Ideas

Desde ya mil gracias.
Gustavo