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

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
gabrielperin
Contributor II
Contributor II

Somar datas

Olá comunidade Qlik Sense

Preciso saber o tempo que um veículo ficou parado em manutenção baseado nas ordens de serviço. 

As informações aparecem da seguinte forma:

OS   |    Início   |    Final

2554    |     01/02/2022    |   03/02/2022

2555    |     02/02/2022    |   05/02/2022

2556    |     08/02/2022    |   15/02/2022

...

O problema é o seguinte, se eu fizer (Início - Final) e somar as OS, eu vou ter somas sobrepostas, pois pode acontecer de uma ordem de serviço seja aberta sem que a anterior seja fechada. 

Como eu poderia fazer a soma sem a sobreposição de datas? 

Labels (5)
1 Solution

Accepted Solutions
gabrielperin
Contributor II
Contributor II
Author

Muito obrigado pela dica. Encontrei a solução de outra maneira:

As OS's que se encontram abertas eu substitui por Today():

If(IsNull(Final), Today(), Final)

Porém ainda ocorre OS's com datas sobrepostas. Então realizei a seguinte tratativa:

If(Inicio <= Previous(Final), Final - Previous(Final), Final - Inicial);

Dessa forma, se uma OS for aberta antes da anterior ser encerrada, ele utiliza a Final do registro anterior como inicial, driblando a sobreposição!

 

Agradeço a contribuição!!

Gabriel Perin

Analista de BI

 

View solution in original post

2 Replies
Thiago_Justen_
MVP
MVP

Olá @gabrielperin,

Bem, seria interessante você somar somente as que se encontram encerradas. Para tanto, se você não tiver esse campo, sugiro criar um campo de Status para a OS e somar apenas OS de Status "Encerrada". Assim:

Sum({<Status={"encerrada"}>} Interval(Final-Inicio))

 

Ou ainda, se não quiseres criar o campo e considerando que OS em Aberto não possui data Final preenchida.:

Sum({<Final={"*"}>} Interval(Final-Inicio))

 Quaisquer dúvidas, pode me chamar: (24) 98870-0533

 

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
gabrielperin
Contributor II
Contributor II
Author

Muito obrigado pela dica. Encontrei a solução de outra maneira:

As OS's que se encontram abertas eu substitui por Today():

If(IsNull(Final), Today(), Final)

Porém ainda ocorre OS's com datas sobrepostas. Então realizei a seguinte tratativa:

If(Inicio <= Previous(Final), Final - Previous(Final), Final - Inicial);

Dessa forma, se uma OS for aberta antes da anterior ser encerrada, ele utiliza a Final do registro anterior como inicial, driblando a sobreposição!

 

Agradeço a contribuição!!

Gabriel Perin

Analista de BI