Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
taisregina
Contributor II
Contributor II

Data de empregado com menos de 1 ano de casa retorna Zero ?

Porque esta formula quando empregado tem menos de Um ano de admissão retorna Zero ?


Desculpem editei pois faltou uma parte da formula !!!


Round((if(Left(RA_DEMISSA, 1) = ' ', Today(), DATE(Date#(RA_DEMISSA,'YYYYMMDD'),'DD/MM/YYYY')) -

      DATE(Date#(RA_ADMISSA,'YYYYMMDD'),'DD/MM/YYYY'))/30/12,1)  as [Tempo de casa Ano],

1 Solution

Accepted Solutions
Thiago_Justen_

Usa a função Round()

Round(

(if(Left(RA_DEMISSA, 1) = ' ', Today(),(DATE(Date#(RA_DEMISSA,'YYYYMMDD'),'DD/MM/YYYY')) -

               DATE(Date#(RA_ADMISSA,'YYYYMMDD'),'DD/MM/YYYY'))/12/30)

,0.01)

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

View solution in original post

12 Replies
PabloTrevisan
Partner - Creator II
Partner - Creator II

Olá Cesar, por que você esta utilizando o /30/12 no final da sua expressão ?

Thiago_Justen_

Cesar,

Poderia usar essa expressão para testar?

If(Age(today(),RA_ADMISSA)<1,Interval(Today()-RA_ADMISSA,'DD') & ' Dias',Age(today(),RA_ADMISSA) & ' Anos') as [Tempo de casa]

Obs.: Essa expressão está concatenando número com string e portanto não será útil em set analysis. Se a intenção for usar este campo em algum set talvez seja melhor criar o tempo de casa em dias mesmo.

Interval(Today()-RA_ADMISSA,'DD') as [Tempo de casa Dias]

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

Bom dia, uso o set analysis sim, abaixo a formula que estou tentando mas retorna zero.

Eu preciso em anos não em dias , eu consegui em anos só que quando e menor que 01 ano ele zera

Round((if(Left(RA_DEMISSA, 1) = ' ', Today(), DATE(Date#(RA_DEMISSA,'YYYYMMDD'),'DD/MM/YYYY')) -

      DATE(Date#(RA_ADMISSA,'YYYYMMDD'),'DD/MM/YYYY'))/30/12,1)  as [Tempo de casa Ano],

taisregina
Contributor II
Contributor II
Author

Estou dividindo 30 dias e 12 meses

Round((if(Left(RA_DEMISSA, 1) = ' ', Today(), DATE(Date#(RA_DEMISSA,'YYYYMMDD'),'DD/MM/YYYY')) -

      DATE(Date#(RA_ADMISSA,'YYYYMMDD'),'DD/MM/YYYY'))/30/12)  as [Tempo de casa Ano],

PabloTrevisan
Partner - Creator II
Partner - Creator II

Cesar, faça uma condição para que se o funcionário não tenha 1 ano completo ele tem que contar os meses, caso tenha um ano ai faz a sua expressão que já funciona.

Thiago_Justen_

Cesar,

Eu faria dessa forma pra evitar muito "esforço" nas expressões na UI:

If(IsNull(RA_DEMISSA),Interval(Today()-RA_ADMISSA,'DD'),Interval(RA_DEMISSA-RA_ADMISSA,'DD')) as [Tempo de casa Dias]


Daí na tela dá pra trabalhar com esse número melhor...


Ah, mas você precisa em anos e não em dias? Ok, daí talvez assim fique mais tranquilo:


If(IsNull(RA_DEMISSA),Interval(Today()-RA_ADMISSA,'DD')/365,Interval(RA_DEMISSA-RA_ADMISSA,'DD')/365) as [Tempo de casa Anos]

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

Bom dia, segue anexo de como ficou !!!

Este "tempo de casa dias" não uso na tabela , Uso o tempo de casa Ano , só que qndo o funcionário tem menos de 1 ano de casa ele me mostra Zero, gostaria talvez que em vez de zero ele me mostra-se o numero 1 . e neste caso ele ainda retornou que 2 anos é igual 29315 dias ?WhatsApp Image 2018-08-21 at 10.49.35.jpg

Thiago_Justen_

Veja, esqueçamos a coluna tempo de casa em dias.

Essa não resolve seu caso?

If(IsNull(RA_DEMISSA),Interval(Today()-RA_ADMISSA,'DD')/365,Interval(RA_DEMISSA-RA_ADMISSA,'DD')/365) as [Tempo de casa Anos]


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

Não deu certo !!!

teste.jpg