Gracias gnzsoloyo
Ahi va...
Código SQL:
Ver originalPROCEDURE QUERY( P_LOGIN IN VARCHAR2,
P_COD_PROV IN VARCHAR2,
P_COD_MOD IN NUMBER,
P_TIEMPO IN VARCHAR2,
P_RESULTADO IN VARCHAR2,
P_F IN VARCHAR2,
U_F IN VARCHAR2,
P_CANAL IN VARCHAR2,
P_SUC IN VARCHAR2,
P_AGEN IN VARCHAR2,
P_GRUPO IN VARCHAR2,
P_RAMO_C IN VARCHAR2,
Z_ACTION IN VARCHAR2) IS
CURSOR CIA IS
SELECT SUM(a.vr_nvos_negocios+
a.vr_renovaciones +
a.vr_modificaciones) v_prod
,SUM(a.vr_rcdos_nvos_negocios+
a.vr_rcdos_renovaciones +
a.vr_rcdos_modificaciones) v_rec
,SUM(a.vr_sini_reserva) v_res
,SUM(a.vr_sini_liquidados) v_liq
,SUM(a.vr_comisiones) v_com
FROM prod_rec a
,ramos b
,agencias ag
WHERE a.cod_cia = b.cod_cia
AND a.cod_secc_contable = b.cod_cont
AND a.cod_secc = b.cod_secc
AND a.cod_ramo = b.cod_ramo
AND b.cod_cia>0 AND b.cod_secc>0 AND b.cod_ramo>0 AND b.cod_cont>0
AND a.cod_div_dreg = ag.cod_div_reg
AND a.cod_ofi_comer = ag.cod_ofi_comer
AND a.cod_agencia = ag.cod_agencia
AND a.cod_secc_contable <> 888
AND a.cod_ramo <> 999
AND a.fecha >= v_fecha_i
AND a.fecha < v_fecha_f
AND a.cod_div_dreg IN ( SELECT t.cod_div_reg
FROM canales t
WHERE t.grupo LIKE decode(P_CANAL,NULL,'%',P_CANAL)
OR t.cod_div_reg LIKE decode(P_CANAL,NULL,'%%',P_CANAL)
)
AND a.cod_ofi_comer LIKE NVL(P_SUC , '%')
AND a.cod_secc_contable LIKE nvl(p_ramo_c , '%')
AND a.cod_agencia LIKE NVL(P_AGEN, '%')
AND b.grupo LIKE nvl(p_grupo ,'%')
GROUP BY a.cod_cia ;
--
v_canal varchar2(280);
v_suc varchar2(80);
v_ramo_c varchar2(80);
v_grupo varchar2(80);
-- v_suma number(12,2) := 0;
-- TABLA DINAMICA
TYPE reg_datos IS RECORD (
codigo NUMBER(5),
nombre varchar2(100),
prod_vlr NUMBER(18),
prod_prt NUMBER(18,1),
rcdo_vlr NUMBER(18),
rcdo_prt NUMBER(18,1),
savi_vlr NUMBER(18),
savi_prt NUMBER(18,1),
sliq_vlr NUMBER(18),
savi_pro NUMBER(18,1)
);
TYPE tabla_datos IS TABLE OF reg_datos INDEX BY BINARY_INTEGER;
d tabla_datos;
-- Variables para recorrer la tabla
i binary_integer := 0 ;
ROWS binary_integer := 0;
v_fecha_i DATE;
v_fecha_f DATE;