Marlon Pasquali escreveu:é que o resultado certamente está dando menor do que 1 hora. Veja abaixo o exemplo mais completo.
select trunc(( (dat_fechamento - dat_abertura) * 86400 / 3600)) ||':' ||
trunc(mod( (dat_fechamento - dat_abertura) * 86400 , 3600 ) / 60 ) || ':'||
trunc(mod ( mod ( (dat_fechamento - dat_abertura) * 86400, 3600 ), 60 )) Tempo
as Data from CHM_CADASTRO WHERE STA_CHAMADO = 'Fechado'
Segue Ex:
SELECT ap.nr_atendimento,
ap.DT_ALTA,
ap.DT_ENTRADA,
(SELECT TRUNC(( (apu.dt_saida_unidade - apu.dt_entrada_unidade) * 86400 / 3600)) || ':' ||
TRUNC(MOD( (apu.dt_saida_unidade - apu.dt_entrada_unidade) * 86400, 3600) / 60) || ':' ||
TRUNC(MOD ( MOD ( (apu.dt_saida_unidade - apu.dt_entrada_unidade) * 86400, 3600),60))
FROM atend_paciente_unidade apu
WHERE apu.cd_setor_atendimento = 129 --Aqui pode ter duas ou mais datas, aí precisaria somar-- AND apu.nr_atendimento = ap.nr_atendimento) unid_inter_3_andar
FROM atendimento_paciente_v ap,
conta_paciente c,
cirurgia r
WHERE ap.nr_atendimento = c.nr_atendimento
and ap.NR_ATENDIMENTO = r.nr_atendimento(+)
AND ap.cd_estabelecimento = 1 --:cd_estabelecimento
AND ap.dt_entrada between '20/10/2018' AND '24/10/2018' --:dt_inicial and :dt_final + 86399 / 86400
AND exists (select 1
from conta_paciente
where nr_atendimento = ap.NR_ATENDIMENTO)
--AND ap.NR_ATENDIMENTO = 1844338
GROUP BY ap.nr_atendimento,ap.DT_ALTA,ap.DT_ENTRADA
ORDER BY ap.DT_ENTRADA;