Duvida comando SQL

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
olcelot
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Ter, 30 Out 2007 4:47 pm
Localização: são Paulo SP

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...
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

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).
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante