SQL Total acumulado Mensual
Publicado por Ramon (5 intervenciones) el 03/05/2011 17:29:42
Saludos, he creado la siguiente consulta:
SELECT DISTINCT LEFT(VM.AÑO_MES,4) AS AÑO, AÑO_MES, CAST(RIGHT(AÑO_MES,2) AS INT) AS COD_MES_AÑO,
DRP.COD_FRANQUICIA, DRP.COD_CATEGORIA_LOCAL, DRP.COD_FAMILIA,
DRP.COD_SUBFAMILIA, DRP.COD_PRESENTACION, VM.COD_PRODUCTO,
VLR_VENTA_NETA_TM, VENTA_MES AS VLR_VENTA_NETA_REAL,
(SELECT SUM(VENTA_MES) FROM VENTA_MES V WHERE V.AÑO_MES BETWEEN LEFT(VM.AÑO_MES,4) + '-01' AND VM.AÑO_MES
AND V.AÑO = VM.AÑO AND V.COD_PRODUCTO = VM.COD_PRODUCTO) AS VLR_YTD_REAL,
CANT_VENTA_NETA_TM, CANT_MES AS CANT_VENTA_NETA_REAL,
(SELECT SUM(CANT_MES) FROM VENTA_MES V WHERE V.AÑO_MES BETWEEN LEFT(VM.AÑO_MES,4) + '-01' AND VM.AÑO_MES
AND V.AÑO = VM.AÑO AND V.COD_PRODUCTO = VM.COD_PRODUCTO) AS CANT_YTD_REAL,
VLR_DPP_MES AS VLR_DPP_REAL, VLR_DPP_TM, VLR_DPP_AÑO AS VLR_DPP_YTD,
VENTA_HAITI_MES, CANT_HAITI_MES,
ISNULL(VLR_VENTA_HAITI_YTD,0) AS VLR_VENTA_HAITI_YTD, ISNULL(CANT_VENTA_HAITI_YTD,0) AS CANT_VENTA_HAITI_YTD
FROM VENTA_MES VM
LEFT JOIN DIM_REL_PRODUCTO DRP ON DRP.COD_PRODUCTO = VM.COD_PRODUCTO
El problema es que son muchos productos y al realizar los subquerys se tarda demasiado tiempo (muchas horas) como podria optimizarlo.
Muchas gracias.
SELECT DISTINCT LEFT(VM.AÑO_MES,4) AS AÑO, AÑO_MES, CAST(RIGHT(AÑO_MES,2) AS INT) AS COD_MES_AÑO,
DRP.COD_FRANQUICIA, DRP.COD_CATEGORIA_LOCAL, DRP.COD_FAMILIA,
DRP.COD_SUBFAMILIA, DRP.COD_PRESENTACION, VM.COD_PRODUCTO,
VLR_VENTA_NETA_TM, VENTA_MES AS VLR_VENTA_NETA_REAL,
(SELECT SUM(VENTA_MES) FROM VENTA_MES V WHERE V.AÑO_MES BETWEEN LEFT(VM.AÑO_MES,4) + '-01' AND VM.AÑO_MES
AND V.AÑO = VM.AÑO AND V.COD_PRODUCTO = VM.COD_PRODUCTO) AS VLR_YTD_REAL,
CANT_VENTA_NETA_TM, CANT_MES AS CANT_VENTA_NETA_REAL,
(SELECT SUM(CANT_MES) FROM VENTA_MES V WHERE V.AÑO_MES BETWEEN LEFT(VM.AÑO_MES,4) + '-01' AND VM.AÑO_MES
AND V.AÑO = VM.AÑO AND V.COD_PRODUCTO = VM.COD_PRODUCTO) AS CANT_YTD_REAL,
VLR_DPP_MES AS VLR_DPP_REAL, VLR_DPP_TM, VLR_DPP_AÑO AS VLR_DPP_YTD,
VENTA_HAITI_MES, CANT_HAITI_MES,
ISNULL(VLR_VENTA_HAITI_YTD,0) AS VLR_VENTA_HAITI_YTD, ISNULL(CANT_VENTA_HAITI_YTD,0) AS CANT_VENTA_HAITI_YTD
FROM VENTA_MES VM
LEFT JOIN DIM_REL_PRODUCTO DRP ON DRP.COD_PRODUCTO = VM.COD_PRODUCTO
El problema es que son muchos productos y al realizar los subquerys se tarda demasiado tiempo (muchas horas) como podria optimizarlo.
Muchas gracias.
Valora esta pregunta


0