Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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;
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
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.
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
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.
vou abrir outro Topico.