SOMA HORA

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
p43lo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 14 Jul 2010 11:35 am
Localização: vitoria es
T.I

Pessoal,
Estou com dificuldade em fazer uma soma em hora.
Eu até fiz a soma porem preciso soma-la novamente para trazer outros meses.

Selecionar tudo

SELECT 
sum (tempo_total) janeiro_total   --------esta com erro
from
(
select 
a.cd_aviso_cirurgia 
,a.cd_atendimento
,t.cd_convenio
,u.cd_unid_int 
,u.ds_unid_int 
,trunc (a.dt_realizacao) data
,a.dt_inicio_cirurgia
,a.dt_fim_cirurgia
,trunc(sum(a.dt_fim_cirurgia - a.dt_inicio_cirurgia))||' dias '||to_char(to_date('00010101', 'yyyymmdd')
 + sum(a.dt_fim_cirurgia - a.dt_inicio_cirurgia), 'hh24:mi:ss')tempo_total
,count (cd_aviso_cirurgia) quant_total
      from
               AVISO_CIRURGIA a
             , atendime t
             , leito l
             , unid_int u
             
    where
             a.sn_confirmado = 'S'
         and a.dt_realizacao between to_date ('01/11/11', 'dd/mm/yy') and  to_date ('30/11/11', 'dd/mm/yy')
         and l.cd_leito = t.cd_leito
         and u.cd_unid_int = l.cd_unid_int
         and t.cd_atendimento(+) = a.cd_atendimento     
         group by 
a.cd_aviso_cirurgia 
,a.cd_atendimento
,t.cd_convenio
,u.cd_unid_int 
,u.ds_unid_int 
,dt_realizacao
,a.dt_inicio_cirurgia
,a.dt_fim_cirurgia
,a.dt_fim_cirurgia 
,a.dt_inicio_cirurgia
  order by ds_unid_int, a.dt_realizacao ) janeiro
RafaelFantin
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 15 Dez 2011 4:01 pm

Verifique assim:

Selecionar tudo

SELECT To_Char(a.dt_realizacao,'mm/rrrr') mês_ano
              , trunc(sum(a.dt_fim_cirurgia - a.dt_inicio_cirurgia))||' dias '||to_char(to_date('00010101', 'yyyymmdd')
                + sum(a.dt_fim_cirurgia - a.dt_inicio_cirurgia), 'hh24:mi:ss')tempo_total 
           FROM AVISO_CIRURGIA a
              , atendime t
              , leito l
              , unid_int u   
          WHERE a.sn_confirmado = 'S'
            and a.dt_realizacao between to_date ('01/11/11', 'dd/mm/yy') and  to_date ('30/11/11', 'dd/mm/yy')
            and l.cd_leito = t.cd_leito
            and u.cd_unid_int = l.cd_unid_int
            and t.cd_atendimento(+) = a.cd_atendimento
          GROUP BY To_Char(a.dt_realizacao,'mm/rrrr')
Avatar do usuário
p43lo
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qua, 14 Jul 2010 11:35 am
Localização: vitoria es
T.I

ok funcionou corretamente.
OBRIGADO.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes