Vega19,
Aqui te paso algunas sugerencias para que pruebes usando funciones analiticas:
Código SQL:
Ver originalDROP TABLE UNIR_CAMPOS PURGE;
CREATE TABLE UNIR_CAMPOS
( FECHA_ENTRADA DATE,
FECHA_SALIDA DATE,
PRECIO NUMBER
) TABLESPACE AUXILIAR PCTFREE 5 PCTUSED 95;
INSERT INTO UNIR_CAMPOS VALUES (TO_DATE('02.10.1991', 'DD.MM.YYYY'), TO_DATE('03.10.1991', 'DD.MM.YYYY'), 1000);
INSERT INTO UNIR_CAMPOS VALUES (TO_DATE('03.10.1991', 'DD.MM.YYYY'), TO_DATE('04.10.1991', 'DD.MM.YYYY'), 2500);
INSERT INTO UNIR_CAMPOS VALUES (TO_DATE('05.10.1991', 'DD.MM.YYYY'), TO_DATE('05.10.1991', 'DD.MM.YYYY'), 3000);
INSERT INTO UNIR_CAMPOS VALUES (TO_DATE('05.10.1991', 'DD.MM.YYYY'), TO_DATE('07.10.1991', 'DD.MM.YYYY'), 1450);
COMMIT;
SELECT FECHA_ENTRADA,
FECHA_SALIDA,
PRECIO,
SUM(PRECIO) OVER(PARTITION BY TRUNC(FECHA_ENTRADA, 'MONTH')) SUMA_MENSUAL_FECHA_ENTRADA,
SUM(PRECIO) OVER(PARTITION BY TRUNC(FECHA_SALIDA, 'MONTH')) SUMA_MENSUAL_FECHA_SALIDA,
SUM(PRECIO) OVER(PARTITION BY TRUNC(FECHA_ENTRADA, 'DAY')) SUMA_SEMANAL_FECHA_ENTRADA,
SUM(PRECIO) OVER(PARTITION BY TRUNC(FECHA_SALIDA, 'DAY')) SUMA_SEMANAL_FECHA_SALIDA
FROM UNIR_CAMPOS;
El select suma por mes y por el campo fecha_entrada, suma tambien por mes y por el campo fecha_salida (no sabes si la salida se realizo el mismo mes que entro o fue otro).
Y los ultimas dos columnas, lo mismo que las mensuales pero en forma semanal.
Si tenes mas dudas, avisame.
Exitos.
Saludos,
Mario.