Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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],
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)
Olá Cesar, por que você esta utilizando o /30/12 no final da sua expressão ?
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]
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],
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],
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.
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]
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 ?
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]
Não deu certo !!!