Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
junior_ehlke
Creator III
Creator III

Seleção da ultima data com Valor

Bom dia,

estou desenvolvendo um projeto para o RH onde o banco de dados é baseado em históricos,

imaginem que eu tenho um histórico de salário,

Mes 07 Salario 1500

Mes 09 Salario 2000

Neste exemplo eu tenho duas movimentações, em minha seleção, selecionando o mes 11 o salario vai trazer zerado, mas eu preciso que me traga o ultimo valor (2000), tentei fazer =Bottom(sum(Valor_Salario)) porém ele me retorna zero.

Antes de tudo, Feliz Natal

Labels (4)
15 Replies
junior_ehlke
Creator III
Creator III
Author

Você tinha Razão, alguns dados Duplicaram, retirei os AND e deixei apenas como você sugeriu, porém carregando todos os campos da tabela:

Vou validar os dados durante a tarde para ver se as informações estão coerentes.

Tmp_HIST_LOCAL_R038HLO:

LOAD

     id_numemp,

     id_tipcol,

     id_numcad, 

     R038HLO_TABORG,

     id_numloc,

     R038HLO_CONTOV,

     R038HLO_CONTOS,

     R038HLO_STAHIS,

     R038HLO_LOCTRA,

     R038HLO_MOTALT,

    Date#(dataTMP)                                                                 as Data_Ini,

    if(Previous(id_numcad) = id_numcad

     ,date#(Previous(dataTMP)),date(Today()))    as Data_Fim

Resident HIST_LOCAL_R038HLO Order by id_numcad,dataTMP desc;

HIST_LOCAL_ATUAL:

NoConcatenate

LOAD

  *,

  MonthStart(addmonths(Data_Ini, IterNo()-1))                                       as data

Resident Tmp_HIST_LOCAL_R038HLO

WHILE MonthStart(addmonths(Data_Ini, IterNo()-1)) < Data_Fim;

DROP Tables HIST_LOCAL_R038HLO,Tmp_HIST_LOCAL_R038HLO;

DROP Fields Data_Ini, Data_Fim;

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Hamilton,

o RH que fiz foi na base da Sênior / Vetorh.  Os históricos de transferências, cargos , centros de custos, salários nominais estão todos em tabelas com a empresa, funcionário , data inicial , e valor (salario / CC / cargo,...).

Eu sempre usava como comparativo uma chave  empresa & '-' & funcionário e deu tudo certo.

Pelo que vi na sua tabela (R038HLO - histórico local de trabalho) você também esta fazendo sobre o Sênior.

Talvez você devesse adicionar a empresa ao código do funcionário (salvo na sua base somente tiver uma empresa).

AMF

furtado@farolbi.com.br
junior_ehlke
Creator III
Creator III
Author

Bom dia,

você tem razão Alessandro, estou utilizando a Base Sênior / Vetorh, conhecendo ela ainda pois é um pouco complicada. Hoje temos apenas uma empresa cadastrada, estou utilizando os campos de numero da empresa, tipo do colaborador, numero do cadastro, codigo do centro de custo, o sistema gerou 18 chaves sintéticas, achei de mais.

Em todo caso, eu carrego a tabela inteira e dentro o if eu apenas comparo if(Previous(id_numcad) = id_numcad) e os valores batem. Acredito que seja só questão de melhorar a estrutura agora.

Sem título.png

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite Hamilton.

Eu juntei em uma tabela chamada Movimentacao as informações dos históricos de local de trabalho, CC , salario nominal, etc... ) eu criei a chave NUMEMP & '-' & NUMCAD mais o período (ano e mês) destas tabelas (eu criei usando o iterno() com as datas iniciais e finais delas...). Ela se linka com a tabela funcionário e calendário.

Assim, toda vez que eu selecionar um ano,mês, eu vou ter as informações de CC, local de trabalho,etc.. do funcionário naquele mês. Nesta tabela movimentação eu ainda concateno as ferias,afastamentos,demissão,atestados,cursos (treinamento),etc... 

Assim sei o que aconteceu a cada mês.

Att,

AMF


 

furtado@farolbi.com.br
junior_ehlke
Creator III
Creator III
Author

Alessandro,

eu carreguei todas as tabelas e deixei que o QV fizesse os cálculos, porém utilizei IF() dentro do set analysis e tive alguns problemas com isto. Agora estou tentando juntar as tabelas de históricos direto no SQL com o Left Join, acha viável?

Falo pq calculos como gratificação, hora extra, acordo de horas dependem de várias regras, e acho melhor calcular direto no script.

Sendo assim crio uma dúvida, no SQL eu estou dando vários Joins porém estou criando os campos de DATA todos separados, exemplo, data_alt_salario, data_alt_filial e assim por diante, tem alguma forma de juntar todos estes campos em um só? posso mandar minha consulta para vc dar uma olhada quando tiver um tempo.

junior_ehlke
Creator III
Creator III
Author

vou abrir outro Topico.

Calculos Scritp - Tabelas Diferentes