Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/08/2012, 14:18
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Funcion para contar los sabados y domingos en oracle

Mira este ejemplo en bloque anonimo.

Lo puedes llevar a una función y traer los datos que requieres.
Código SQL:
Ver original
  1. SQL> DECLARE
  2.  contador_sabados NUMBER := 0;
  3.  contador_domingos NUMBER :=0;
  4.  ano VARCHAR2(4) := '&valorano';
  5.  mes VARCHAR2(2) := '&valormes';
  6.    
  7.  fecha_inicio DATE;
  8.  fecha_fin DATE;
  9.    
  10.  BEGIN
  11.   fecha_inicio := to_date(ano||mes||'01','YYYYMMDD');
  12.    fecha_fin := last_day(to_date(ano||mes||'01','YYYYMMDD'));
  13.  
  14.   WHILE fecha_inicio <= fecha_fin LOOP
  15.      IF TRIM(to_char(fecha_inicio,'DAY', 'NLS_DATE_LANGUAGE=SPANISH')) = 'SÁBADO' THEN
  16.          contador_sabados := contador_sabados + 1;
  17.      END IF;
  18.      IF TRIM(to_char(fecha_inicio,'DAY', 'NLS_DATE_LANGUAGE=SPANISH')) = 'DOMINGO' THEN
  19.           contador_domingos := contador_domingos + 1;
  20.      END IF;
  21.      fecha_inicio := fecha_inicio + 1;
  22.   END LOOP;
  23.  dbms_output.put_line('hay '||contador_sabados||' sabados y '||contador_domingos||' domingos. Para un total de: '||(contador_sabados+contador_domingos));
  24.  
  25.   END;
  26.   /
  27.  
  28. hay 4 sabados y 5 domingos. Para un total de: 9
  29.  
  30. PL/SQL PROCEDURE successfully completed
__________________
Without data, You are another person with an opinion.
W. Edwads Deming