Página 1 de 1

Duvida comando SQL

Enviado: Ter, 30 Out 2007 4:50 pm
por olcelot
Tenho um banco que guarda os horarios de entrada e saida dos medicos em um hospital....
Precisaria pegar o intervalo desses 2 horarios e disponibiliza-los de 30 em 30 minutos...

não tenho a menor ideia de como fazer isso, quem puder ajudar eu agradeço e muito...

Enviado: Ter, 30 Out 2007 7:01 pm
por rogenaro
Não tenho como testar no momento, você poderia fazer algo do tipo:

Selecionar tudo

select data_hora_intervalo
from
(
   select a.data_entrada + (b.rnum / 48)
   from  tabela_entrada_saida a
       , (
           select level rnum 
           from dual connect by
           level <= (
                      select (nvl(dat_saida, sysdate) - dat_entrada) * 48
                      from   tabela_entrada_saida
                      where  id_medico = 1
                    )
         ) b
   where a.id_medico = 1
);

Ou seja, você precisa somar n * ( 1/48 ) (1 dia = 24 horas, multiplicado por 2 pois o intervalo deve ser de meia em meia hora) dias ao horário de entrada, onde n iria variar de 1 até o número de intervalos de 30 minutos existentes entre a entrada e saída do médico (que é o que o select from dual está fazendo aqui).