Amigos tengo una consulta con esta sentencia que me retorna las ventas
totalizadas mes a mes de cada producto
pero mi problema esta en que necesito dividir el total de ventas de todos
los productos entre total de venta del año de cada
producto(VTotalesdetodoslosproductos/Vtotaldelañocadaproducto). y tambien
necesito sumar el resultado de esa columna con la del siguiente producto
(fila x Fila) algo asi
como(productoA+productoB=productoC+productoB=productoD+productoC=productoE)
Adjunto sentencia que realiza el acumulado de mes a mes.
SELECT MV.PRODUCTOID, IT.DETALLEPROD, IT.MEDIDAPROD,
ENE_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 1 THEN SAL_ITE ELSE 0.00 END),
FEB_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 2 THEN SAL_ITE ELSE 0.00 END),
MAR_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 3 THEN SAL_ITE ELSE 0.00 END),
ABR_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 4 THEN SAL_ITE ELSE 0.00 END),
MAY_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 5 THEN SAL_ITE ELSE 0.00 END),
JUN_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 6 THEN SAL_ITE ELSE 0.00 END),
JUL_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 7 THEN SAL_ITE ELSE 0.00 END),
AGO_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 8 THEN SAL_ITE ELSE 0.00 END),
SET_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 9 THEN SAL_ITE ELSE 0.00 END),
OCT_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 10 THEN SAL_ITE ELSE 0.00
END),
NOV_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 11 THEN SAL_ITE ELSE 0.00
END),
DIC_ = SUM(CASE DATEPART(MONTH,MV.FECHA) WHEN 12 THEN SAL_ITE ELSE 0.00 END)
FROM DETALLEALMACEN MV
JOIN M_PRODUCTO IT ON IT.PRODUCTOID=MV.PRODUCTOID
WHERE MV.ANULADA='N ' AND MV.TIPO_DOC='FACTURA'
GROUP BY MV.ANHO, MV.PRODUCTOID, IT.DETALLEPROD, IT.MEDIDAPROD
Lastimosamente tengo que hacerlo en el mismo Sqlserver ya que va a ser
consumido x cualquier tipo de aplicacion (Excel,Cristal Report,etc)
Nota:
Mi solucion seria usar cursores pero antes de aplicarlo, me gustaria que me
den algunos concejos o tal vez el uso de cursores no seria necesario.
Gracias
Developers Dany Acosta
Leer las respuestas