ALTER PROCEDURE [dbo].[PR_MOSTRAREGRESOSXMESDELAÑO](@FECHA DATETIME)AS BEGIN-- PARA ENERO SELECT dbo.ARTICULO.COD_ARTICULO as 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) AS 'Egreso Enero'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '1' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- PARA FEBREROSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) AS 'Egreso Febrero'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '2' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- PARA MARZOSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Marzo'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '3' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- ABRILSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Abril'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '4' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- MAYOSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Mayo'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '5' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- JUNIOSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Junio'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '6' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- JULIOSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Julio'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '7' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- AGOSTOSELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Agosto'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '8' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- SEPTIEMBRESELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Septiembre'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '9' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- OCTUBRESELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Octubre'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '10' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- NOVIEMBRESELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Noviembre'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '11' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASC-- DICIEMBRESELECT dbo.ARTICULO.COD_ARTICULO AS 'CODIGO ITEM', dbo.ARTICULO.DESC_ARTICULO AS 'NOMBRE ITEM', dbo.ARTICULO.FORM_FARMACEUTICA AS 'FORM FARMACEUTICA', SUM(dbo.DETALLE_BOLETA.CANTIDAD) as 'Egreso Diciembre'FROM dbo.ARTICULO INNER JOIN dbo.DETALLE_BOLETA ON dbo.ARTICULO.COD_ARTICULO = dbo.DETALLE_BOLETA.COD_ARTICULO WHERE MONTH(DETALLE_BOLETA.FECHA_EGRESO) = '12' AND YEAR(DETALLE_BOLETA.FECHA_EGRESO) = YEAR(@FECHA)GROUP BY ARTICULO.COD_aRTICULO, ARTICULO.DESC_ARTICULO, ARTICULO.FORM_FARMACEUTICA ORDER BY ARTICULO.COD_aRTICULO ASCEND
SELECT ITEM,[1] ENE,[2] FEB, [3] MAR, [4] ABR,[5] MAY,[6] JUN,[7] JUL,[8] AGO,[9] SEP,[10] OCT, [11] NOV,[12] DICFROM (SELECT D.COD_ARTICULO AS ITEM,A.DESC_ARTICULO AS NOMBRE, MONTH(D.FECHA_EGRESO) AS MES, D.CANTIDAD AS CANTIDADFROM DETALLE_BOLETA AS D INNER JOIN ARTICULO A ON D.COD_ARTICULO = A.COD_ARTICULO WHERE YEAR(D.FECHA_EGRESO) = '2009') V PIVOT (SUM(CANTIDAD) FOR MES IN([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) AS PT
çCREATE PROCEDURE PR_REPORTE_SUMA_TOTALES (@FECHA DATETIME)ASBEGIN SELECT [CODIGO] = CASE WHEN ROW IS NULL THEN 'SUMA' ELSE CONVERT(VARCHAR(80),[ROW]) END, --[NOMBRE] = ROW2, [ENERO] = SUM(CASE COL WHEN '1' THEN DATA ELSE 0 END ), [FEBRERO] = SUM(CASE COL WHEN '2' THEN DATA ELSE 0 END ), [MARZO] = SUM(CASE COL WHEN '3' THEN DATA ELSE 0 END ), [ABRIL] = SUM(CASE COL WHEN '4' THEN DATA ELSE 0 END ), [MAYO] = SUM(CASE COL WHEN '5' THEN DATA ELSE 0 END ), [JUNIO] = SUM(CASE COL WHEN '6' THEN DATA ELSE 0 END ), [JULIO] = SUM(CASE COL WHEN '7' THEN DATA ELSE 0 END ), [AGOSTO] = SUM (CASE COL WHEN '8' THEN DATA ELSE 0 END ), [JULIO] = SUM(CASE COL WHEN '9' THEN DATA ELSE 0 END), [SEPTIEMBRE] = SUM(CASE COL WHEN '10' THEN DATA ELSE 0 END), [NOVIEMBRE] = SUM(CASE COL WHEN '11' THEN DATA ELSE 0 END), [DICIEMBRE] = SUM(CASE COL WHEN '12' THEN DATA ELSE 0 END), [TOTAL] = SUM(DATA)FROM (SELECT [ROW] = (DETALLE_BOLETA.COD_ARTICULO), -- [ROW2] = ARTICULO.DESC_ARTICULO, [COL]=MONTH(FECHA_EGRESO), [DATA] = SUM(DETALLE_BOLETA.CANTIDAD) FROM DETALLE_BOLETA INNER JOIN ARTICULO ON (DETALLE_BOLETA.COD_ARTICULO = ARTICULO.COD_ARTICULO) WHERE YEAR(DETALLE_BOLETA.FECHA_EGRESO) =YEAR(@FECHA) GROUP BY DETALLE_BOLETA.COD_ARTICULO,MONTH(FECHA_EGRESO) ) F GROUP BY ROW WITH ROLLUP ORDER BY GROUPING(ROW) ASCEND