Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
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))