Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
cristianevpm
Contributor III
Contributor III

Somar Horas

Preciso fazer uma soma da coluna TEMPO_TP

Mas a soma no qlikview está absurda: 55,01634

 

Tempo_TP
00:03:00
00:03:00
00:08:00
00:11:00
00:12:00
00:14:00
00:18:00
00:27:00
00:35:00
00:49:49
00:50:00
00:54:00
00:55:00
00:59:00
01:07:00
02:19:57
02:50:00
03:06:00
03:18:00
03:24:34
07:43:00

Pode me ajudar?

11 Replies
marcelvinicius
Creator III
Creator III

Boa tarde Cristiane,

Como está configurado seu campo TEMPO_TP?


Tentou assim?

Sum(time(timestamp(TEMPO_TP))

cristianevpm
Contributor III
Contributor III
Author

Não funcionou.

O campo está como texto.

Sabe como converto esse campo em horas ou decimal ?

marcelvinicius
Creator III
Creator III

Tenta converter com esse:

NUM(NUM(TEMPO_TP) / 100, '###.###,##')

marcelvinicius
Creator III
Creator III

Ou somente

TimeStamp(TEMPO_TP)

eduardo_dimperio
Specialist II
Specialist II

Ola Cristiane,

A funcao time(field) ja deveria resolver, caso nao funcione tente time(num#(field)) e tente somar. Se ainda sim não funcionar, entao quebre por hora usando a função hour() e depois faça a soma.

cristianevpm
Contributor III
Contributor III
Author

Os dados de input estão no formato de horas 'hh:mm:ss'

No script escrevi inteval(sum(Tempo_Tp),'hh:mm:ss') as Tempo_Real

Mas o resultado deveria ser 30:27:20 está mostrando errado 06:24:00.

Capturar.JPG

marcelvinicius
Creator III
Creator III

Boa tarde,

Não consegue disponibilizar o qvw?

Att

srchagas
Creator III
Creator III

Ola..

Vamo a Regras:

* Voce tem hora e minutos no registro, por esse motivo so dividir por 60 nao resolve , o que voce precisa e fazer um pequena validacao. Eu particulamente gosto de jogar tudo para segundo e depois trabalhar o dado, mas  claro e gosto meu, entao eu faco esse codigo ai Abaixo:

Tmp:

LOAD * Inline

[

Hora, ID

00:03:00,1

00:03:00,1

00:08:00,1

00:11:00,1

00:12:00,1

00:14:00,1

00:18:00,1

00:27:00,1

00:35:00,1

00:49:49,1

00:50:00,1

00:54:00,1

00:55:00,1

00:59:00,1

01:07:00,1

02:19:57,1

02:50:00,1

03:06:00,1

03:18:00,1

03:24:34,1

07:43:00,1

];

Horas:

NoConcatenate

LOAD

ID,

  Time(Hora,'hh:mm:ss')as nValorHora,

  if(Hora/60 >='0,00069444444444444',((Hora/24)/60),Hora/60 ) as cValorHoraemSegs

Resident  Tmp;

DROP Table Tmp;

Ai depois disso usa isso aqui : Interval(Sum(cValorHoraemSegs))

mas voce pode usar somente o Interval(Sum(Hora)),


Quando voce vai calcular tempo nao pode simplesmente fazer o SUM e converter para Hora, voce precisa da funcao Interval para calcular o invervalo das horas



Espero ter ajudado.

eduardo_dimperio
Specialist II
Specialist II

Cristiane, faz um teste

SUM(HOUR(Tempo_Tp))+SUM(MINUTE(Tempo_Tp))+SUM(SECOND(Tempo_Tp))