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 FEBRERO
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 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 MARZO
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 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
-- ABRIL
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 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
-- MAYO
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 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
-- JUNIO
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 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
-- JULIO
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 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
-- AGOSTO
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 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
-- SEPTIEMBRE
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 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
-- OCTUBRE
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 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
-- NOVIEMBRE
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 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
-- DICIEMBRE
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 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 ASC
END
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] DIC
FROM (
SELECT D.COD_ARTICULO AS ITEM,A.DESC_ARTICULO AS NOMBRE, MONTH(D.FECHA_EGRESO) AS MES, D.CANTIDAD AS CANTIDAD
FROM 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)
AS
BEGIN
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) ASC
END