Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/05/2015, 08:54
Avatar de Doglas
Doglas
 
Fecha de Ingreso: mayo-2015
Mensajes: 22
Antigüedad: 9 años
Puntos: 0
Respuesta: Reporte de descansos medicos

Bueno muchachos ya termine y me resulto un query mucho mas pequeño que el inicial.
Código SQL:
Ver original
  1. SELECT 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,
  2.        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
  3.             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
  4.             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
  5.        END dias
  6. FROM sigarp.asistencia_ocurrencia
  7. WHERE c_c_codigo BETWEEN '000000000000000' AND '999999999999999'
  8. 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 original
  1. c_c_codigo c_n_secuencia d_inicio d_fin dias
  2. 28014  140352   23/01/2014  24/01/2014  2
  3. 06787  140353   21/01/2014  23/01/2014  3
  4. 27034  140354   22/01/2014  24/01/2014  3
  5. 13832  140355   24/01/2014  25/01/2014  2
  6. 23010  132516   05/10/2013  02/01/2014  2
  7. 95184  140204   15/01/2014  16/01/2014  2
  8. 24044  140205   16/01/2014  17/01/2014  2
  9. 11053  140206   16/01/2014  16/01/2014  1
  10. 95324  140207   15/01/2014  16/01/2014  2
  11. 95176  140208   16/01/2014  16/01/2014  1
  12. 96118  140209   16/01/2014  16/01/2014  1
  13. 99148  140210   14/01/2014  15/01/2014  2
  14. 32025  140212   13/01/2014  13/01/2014  1
  15. 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