Bueno muchachos ya termine y me resulto un query mucho mas pequeño que el inicial.
Código SQL:
Ver originalSELECT c_c_codigo,c_n_secuencia,d_inicio,d_fin,n_n_dias_procesados,c_c_mes_anho_ini,c_c_mes_anho_fin, n_n_dia_ini,n_n_dia_fin,
CASE WHEN (d_inicio BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) AND (d_fin BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) THEN d_fin - d_inicio + 1
WHEN (d_inicio NOT BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) AND (d_fin BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) THEN d_fin - to_date('&fecha_ini','dd/mm/yyyy') + 1
WHEN (d_inicio BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) AND (d_fin NOT BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) THEN to_date('&fecha_fin','dd/mm/yyyy') - d_inicio + 1
END dias
FROM sigarp.asistencia_ocurrencia
WHERE c_c_codigo BETWEEN '000000000000000' AND '999999999999999'
AND ((d_inicio BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')) OR (d_fin BETWEEN to_date('&fecha_ini','dd/mm/yyyy') AND to_date('&fecha_fin','dd/mm/yyyy')));
Código excel:
Ver originalc_c_codigo c_n_secuencia d_inicio d_fin dias
28014 140352 23/01/2014 24/01/2014 2
06787 140353 21/01/2014 23/01/2014 3
27034 140354 22/01/2014 24/01/2014 3
13832 140355 24/01/2014 25/01/2014 2
23010 132516 05/10/2013 02/01/2014 2
95184 140204 15/01/2014 16/01/2014 2
24044 140205 16/01/2014 17/01/2014 2
11053 140206 16/01/2014 16/01/2014 1
95324 140207 15/01/2014 16/01/2014 2
95176 140208 16/01/2014 16/01/2014 1
96118 140209 16/01/2014 16/01/2014 1
99148 140210 14/01/2014 15/01/2014 2
32025 140212 13/01/2014 13/01/2014 1
32025 140213 14/01/2014 14/01/2014 1
La ultima columna es el resultado, las fechas son los valores con los que trabaja el query y si colocan el mismo código en el where solo botara de ese trabajador.
PD: hasta ahora no se porque esta dentro de