Bom dia pessoal!
Tenho o seguinte caso tenho uma tabela com uma coluna onde ficam as horas ‘09:00:00’, eu preciso efetuar uma soma de todas essas horas, como eu faço isso? o SUM nao funciona.
valeu pessoal.
Bom dia pessoal!
Tenho o seguinte caso tenho uma tabela com uma coluna onde ficam as horas ‘09:00:00’, eu preciso efetuar uma soma de todas essas horas, como eu faço isso? o SUM nao funciona.
valeu pessoal.
Em oracle você soma com + mesmo…
select horaX+horaY from table
ou sum(horas) para somar tuplas
qlq dúvida veja sites de consulta de referência
Em oracle você soma com + mesmo…
select horaX+horaY from table
ou sum(horas) para somar tuplasqlq dúvida veja sites de consulta de referência
sem querer abusar mais como eu somaria todas as linhas desta coluna?
Tenta essa consulta amigo:
select
sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'hh24' ) ) +
sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'mi' ) ) / 60 + -- minutos em horas
( sum(to_char(to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) / 60 -- segundos em horas
from tabela
Caso a coluna já esteja em formato de data entao retire o TO_DATE. Vc tem de converter a coluna para para data e entao extrair cada campo da hora e fazer os somatórios individuais para depois somar tudo e ter o total de horas. Espero que ajude. []'s.
Tenta essa consulta amigo:
select sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'hh24' ) ) + sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'mi' ) ) / 60 + -- minutos em horas ( sum(to_char(to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) / 60 -- segundos em horas from tabelaCaso a coluna já esteja em formato de data entao retire o TO_DATE. Vc tem de converter a coluna para para data e entao extrair cada campo da hora e fazer os somatórios individuais para depois somar tudo e ter o total de horas. Espero que ajude. []'s.
blz cara valeu.
mais quando tem essa sequencia de horas no banco
00:10:00
03:20:00
02:30:00
07:10:00
02:30:00
00:20:00
03:40:00
02:50:00
21:55:00
01:20:00
18:15:00
02:40:00
01:30:00
01:10:00
e eu somo da 69,33333333333333333333333333333333333333 ao inves de 21:20:00 sabe oq posso fazer?
valeu.
Testa essa consulta então:
select
sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'hh24' ) ) + -- Soma das horas
round(
( ( sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'mi' ) ) -- SOMA DE TODOS OS MINUTOS
+
round( sum( to_char( to_date( COLUNA_HORA, 'hh24:mi:ss' ), 'ss' ) ) / 60 ) ) / 60 ) -- TODOS OS SEGUNDOS EM MINUTOS, ARREDONDADOS
) -- arredondando os minutos em horas
|| ':' ||
mod( sum(to_char(to_date(COLUNA_HORA, 'hh24:mi:ss'), 'mi') ), 60 ) -- minutos RESTANTES dos minutos convertidos em HORAS
|| ':' ||
mod( sum(to_char(to_date(COLUNA_HORA, 'hh24:mi:ss'), 'ss') ), 60 ) -- segundos RESTANTES dos segundos convertidos em MINUTOS
from TABLE
[]'s.