Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/07/2013, 15:03
lugue2011
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 11 años, 7 meses
Puntos: 0
Duda con esta consulta

Hola como va??

Tengo problemas con una consulta, a ver si alguien me puede ayudar
Tengo 2 tablas, una de Movimientos de stock y otra de TipoDeMovimiento

Mov stock: articulo, deposito, fecha, tipoMov
TipoDeMovimiento: id, signo

Si ejecuto lo siguiente:
Código SQL:
Ver original
  1. SELECT sd.articulo, sd.mdeposito, (SELECT SM.signo FROM tipomovimiento SM WHERE SM.id=SD.tipomovimiento) AS Signo,
  2. (SELECT sd.cantidad * (SELECT SM.signo FROM tipomovimiento SM WHERE SM.id=SD.tipomovimiento)) AS CantidadMultiplicada
  3. FROM movimientostock sd
  4. WHERE sd.articulo=51 AND sd.deposito=17 AND YEAR(sd.fecha)=2013 AND MONTH(sd.fecha)=1
  5. GROUP BY  sd.articulo, sd.deposito, YEAR(sd.fecha), MONTH(sd.fecha), sd.tipomovimiento, sd.cantidad
Obtengo

Arti Depo Signo CantidadMultiplicada (ya traigo multiplicada por su factor digamos, tal vez no sirve de nada igual esto que hago y es mas util case)

51 17 1 2.00
51 17 1 1.00
51 17 -1 -1.00

Querria obtener UN UNICO REGISTRO asi

51 17 1 2.00 (pues es 2+1-1)

La idea seria agrupar cantidades de un deposito de un articulo POR MES y TENIENDO EN CUENTA el movimiento que tuvo (algunas cantidades se sumarian en el sum con un *1 y otras con un *-1)

Es con sum pero no entiendo como hacerlo.

Resumiendo
Si tengo
Articulo Depo Cant Mes (signo en la otra tabla)
1 1 10 3 -1
1 1 15 3 -1
1 1 20 4 1
1 2 15 6 1
2 2 12 6 1
2 3 12 7 1
2 3 15 7 -1

Quiero algo que me devuelva
Articulo Depo Cantidad Mes
1 1 -25 3 ----- pues hace -10 -15 = -25
1 1 20 4
1 2 15 6
2 2 12 6
2 3 '-3 7 ----- pues hace 12 - 15 = -3


GRACIAS!

Última edición por gnzsoloyo; 29/07/2013 a las 16:19