- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 4 meses atrás por LeloStyle.
-
AutorPosts
-
21 de agosto de 2009 às 5:12 pm #89181LeloStyleParticipante
Bom dia pessoal,
Estou aqui batendo a kbça para fazer um calculo de horas, se puderem me ajudar ficarei gratooo.
Estou com um campo em meu report que precisa somar as quantidades de horas, no selec dentro da query ele ta assim :
to_char(b.qtde_horas,’hh24:mi:ss’).
Mas pelo o que eu vi aquelas funções que tem dentro das propriedades dos reports não consegue somar char, qual seria a melhor forma de somar essas horas ?
Gratoo
21 de agosto de 2009 às 5:35 pm #89182leo_jfParticipanteLelo,
Também tive esse problema e resolvi fazendo assim:
v_retorno := TO_CHAR(TO_DATE(p_carga,'hh24:mi') +
(TO_DATE(TO_CHAR(v_retorno,'0000'),'hh24:mi')
-TRUNC(TO_DATE(TO_CHAR(v_retorno,'0000'),'hh24:mi'))),'hh24mi');Minhas variáveis são:
p_carga VARCHAR2
v_retorno NUMBER(4)E as variáveis que uso para somatorio das horas são Todas NUMBER.
Funcionou perfeito, mas atenção, pois isso foi um erro que corrigi. Quem criou a função também tava somando varchar/number, o que não dá certo.P.s: Como você esta usando um select, basta pegar essa instrução e colocar na query.
Qq dúvida, só dizer.
21 de agosto de 2009 às 5:42 pm #89184LeloStyleParticipanteLeonardo,
Desde já obrigado pela ajuda, é que sou iniciante ainda e to apanhando um pouco, vou mandar meu select, se vc puder estar encaixando ai para eu poder ver ficarei agradecido. Segue
select b.cd_analista,
a.cd_os,
decode(b.motivo,'A','Análise','D','Desenvolvimento','T','Teste','C','Correção','CH','Correção Homologação','TC','Teste Correção'),
to_char(b.qtde_horas,'hh24:mi:ss'),
b.data_inicio,
1 qtde_osfrom fbr_ocorrencia a,
fbr_ocorrencia_analista bwhere to_char(b.data_inicio,'mm/rrrr') = :p_data
and a.cd_ocorrencia = b.cd_ocorrencia;Obrigado
21 de agosto de 2009 às 6:50 pm #89186leo_jfParticipanteLelo,
Não vou poder fazer agora, pois vou para uma reunião, mas se puder esperar um pouco, a tarde, altero para vc e te encaminho.
[]sUma observação: Na query vc ja tem a coluna com o valor qtde_horas, vc esta apenas criando uma máscara (to_char(b.qtde_horas,’hh24:mi:ss’).
Não entendi exatamente o que vc quer somar, já que a coluna, pelo que parece, já é somatorio de horas.
Vc não quer é uma mascara para mostrar essas horas?
Como é mostrado os dados dessa coluna, e qual o tipo (number?): qtde_horas?
No aguardo.21 de agosto de 2009 às 10:54 pm #89198LeloStyleParticipanteLeonardo, obrigadooo !!!
Eu estava tentando e consegui fazer algo aqui, veja:
select Trunc(Sum(((To_Number(to_char(b.qtde_horas,'hh24'))/24 + To_Number(to_char(b.qtde_horas,'mi'))/60/24)) * 24),2) hora_mes,
b.cd_analista,
a.cd_os,
decode(b.motivo,'A','Análise','D','Desenvolvimento','T','Teste','C','Correção','CH','Correção Homologação','TC','Teste Correção')Atividade,
b.data_inicio,
1 qtde_osfrom fbr_ocorrencia a,
fbr_ocorrencia_analista bwhere to_char(b.data_inicio,'mm/rrrr') = '08/2009' --:p_data
and a.cd_ocorrencia = b.cd_ocorrencia
and b.cd_analista = 51
--and a.cd_os = '4634'
group by b.cd_analista, a.cd_os, b.data_inicio, b.motivo
order by b.data_inicio;
Ta trazendo as horas de cada atividade para mim como eu queria certo ?
Mas não ta trazendo algumas horas corretas como estão na base.
Se puder dar uma olhada !!!
Gratooo -
AutorPosts
- Você deve fazer login para responder a este tópico.