Bueno Joven MARLIT....
lo primero que hice fue ordenar un poco la consulta, la prolijidad en el armada de la consulta es muy importante.
me di cuenta que haces un join entre numero de documento y otro por codigo de producto, supongo que la categoria a la que te refieres la cuales no haces mencion en ningun lado, es COD_GRUPO_TERAP.
bien aqui el cogigo.
Código:
SELECT FECHA,
NUM_DOCUMENTO,
COD_CLIENTE,
COD_GRUPO_TERAP,
COD_PRODUCTO,
SUM(COD_PRODUCTO) OVER(PARTITION BY COD_GRUPO_TERAP) PRODUCTO_POR_CATEGORIA,
DES_PRODUCTO
FROM (SELECT TRIM(COD_GRUPO_TERAP) COD_GRUPO_TERAP,
DES_PRODUCTO,
COUNT(TRIM(COD_PRODUCTO)) CANTIDAD
FROM CMR.MAE_PRODUCTO_COM
WHERE TRIM(COD_GRUPO_TERAP) IS NOT NULL
GROUP BY TRIM(A.COD_GRUPO_TERAP),
A.DES_PRODUCTO
) A,
(SELECT TRIM(NUM_DOCUMENTO) NUM_DOCUMENTO,
TRIM(COD_PRODUCTO) COD_PRODUCTO,
COUNT(*) CANTIDAD
FROM BTLCADENA.D_DOCUMENTOS
GROUP BY TRIM(NUM_DOCUMENTO),
TRIM(COD_PRODUCTO)
)B,
(SELECT TO_NUMBER(COD_CLIENTE) COD_CLIENTE,
TRIM(NUM_DOCUMENTO) NUM_DOCUMENTO,
FCH_FACTURA
FROM BTLCADENA.C_DOCUMENTOS
WHERE FCH_FACTURA BETWEEN ('11-DIC-06')
AND ('11-JUN-07')
)C
WHERE A.COD_PRODUCTO = B.COD_PRODUCTO
AND C.COD_CLIENTE = 6
AND B.NUM_DOCUMENTO = C.NUM_DOCUMENTO
la solucion a tu problema esta en la linea...
Código:
SUM(COD_PRODUCTO) OVER(PARTITION BY COD_GRUPO_TERAP)
esto suma la cantidad de productos por categoria y aparece como una columna mas.
Puede que algun cambio no funcione, corrigelo y dime luego como te fue.
Sldo Atte, Mario.