Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
thiago_alessand
Contributor III
Contributor III

Left Join entre 2 qvds

Boa tarde,

 

Tenho 2 scripts para fontes de dados diferentes. Uma pega do banco de dados e outra de um arquivo excel. Ambos fazem a carga e geram 2 qvds.

 

Como eu poderia fazer o left join com esses 2 qvds? Poderiam me dar uma luz, pois já tentei de várias maneiras.

Basicamente, eu teria de "adicionar" os dados  do script 2 com os dados que são carregados no script 1. Não sei se o Left Join seria o ideal, neste caso.

Script 1

Funcionarios:
LOAD
	RA_FILIAL&'|'&RA_MAT&'|'&null()	AS ChaveFuncionario,
    RA_FILIAL				AS ChaveEmpresa,
    RA_FILIAL&'|'&RA_MAT&'|'&null()			AS ChaveFuncionarioTemporario,
    RA_MAT					AS Matricula,
    RA_CC					AS CCustoAtual,
    RA_NOME					AS Nome,
    RA_MUNICIP				AS Cidade,
    RA_SEXO					AS Sexo,
    RA_ESTCIVI				AS EstadoCivil,
    RA_NASC					AS DataNascimento,
    RA_ADMISSA				AS DataAdmissao,
    age(today(1),Makedate(left(RA_ADMISSA,4),mid(RA_ADMISSA,5,2),right(RA_ADMISSA,2)))
    						AS TempoEmpresa,
    RA_DEMISSA				AS DataDemissao,
    RA_TNOTRAB				AS Turno,
    RA_SALARIO				AS SalarioAtual,
    If(RA_CODFUNC='00091','Menor Aprendiz',
    IF(WildMatch(RA_CODFUNC,'00098','01395'),'Estagiario','Normal'))
    						AS TipoFuncionario,
                            
    RA_HRSDIA				AS HorasTrabDia,
    RA_SITFOLH				AS SituacaoFolha,
    RA_TIPOADM				AS TipoAdmissao,
    RA_DEFIFIS				AS FuncionarioPCD,
    RA_MOTADM				AS MotivoAdmissao,
    RA_RESCRAI				AS CodRescisaoRais	
FROM [lib://Arquivos QVD (arobrasil_administrador)/RH\Funcionario32019.qvd] (qvd);

Script 2

FuncionarioTemporario:

LOAD	
	EmpresaTemporario&'|'&null()&'|'&Date(RescisaoTemporario,'YYYYMM')	AS ChaveGeral,
	TipoTurnover														AS TipoTurnoverTemporario,
    TipoFuncionario														AS TipoFuncionarioTemporario,
	EmpresaTemporario,
    VagaTemporario,
    NomeTemporario,
    FuncaoTemporario,
    CcustoTemporario,
    SetorTemporario,
    AdmissaoTemporario,
    ProrrogacaoTemporario,
    DATE(RescisaoTemporario) 											AS RescisaoTemporario      
FROM [lib://Arquivos QVD (arobrasil_administrador)/RH\FuncionariosTemporarios20*.qvd] (qvd);

 

Colunas que se equivalem em ambos scripts e são relevantes:

RA_FILIAL e EmpresaTemporario

TipoFuncionario e TipoFuncionarioTemporário

RA_NOME e NomeTemporario

RA_CC e CcustoTemporario

 

Obrigado desde já.

2 Replies
danilostochi
Creator II
Creator II

Boa tarde, creio que neste caso você teria usar o "concatenate" similar ao "union" do sql

veja mais referencias neste link

https://community.qlik.com/t5/Qlik-Brasil/Fun%C3%A7%C3%A3o-Concatenate/gpm-p/755396#M23115

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com
thiago_alessand
Contributor III
Contributor III
Author

Boa tarde,

primeiramente, obrigado pelo suporte.

Alterei para não verificar via QVD, seguindo o exemplo indicado, verificando entre dois fontes, para que possa criar o qvd após o concatenate. Creio que ficaria melhor na questão de futuras manutenções.

Inclui o concatenate conforme o exemplo, mas o Qlik Sense acusa "Tabela não encontrada.

Ocorreram os seguintes erros:
Table 'FuncionarioTemporario' not found
O erro ocorreu aqui:
CONCATENATE

LOAD * RESIDENT FuncionarioTemporario

 

Segue script com o concatenate:

Funcionario:
LOAD
RA_FILIAL, 
RA_MAT, 
LEFT(RA_CC,5) AS RA_CC,
RA_CC AS RA_CC_COMP,
RA_NOME, 
RA_MUNICIP, 
If(RA_SEXO='M','Masculino',
If(RA_SEXO='F','Feminino','Não Informado'))
AS RA_SEXO,
If(RA_ESTCIVI='C','Casado',
If(RA_ESTCIVI='S','Solteiro',
If(RA_ESTCIVI='D','Divorciado',
If(RA_ESTCIVI='V','Viúvo',
If(RA_ESTCIVI='M','Marital','Não Informado')))))
AS RA_ESTCIVI,
// If(RA_SITFOLH='' OR ISNULL(RA_SITFOLH) OR RA_SITFOLH=' ','Trabalhando',
// If(RA_SITFOLH='A','Afastado',
// If(RA_SITFOLH='D','Demitido',
// If(RA_SITFOLH='F','Férias','Não Informado')))) 
// AS RA_SITFOLH,
RA_SITFOLH AS RA_SITFOLH,
RA_NASC, 
RA_ADMISSA, 
RA_DEMISSA, 
RA_TNOTRAB, 
RA_SALARIO, 
RA_HRSDIA,
RA_CODFUNC,
RA_TIPOADM,
RA_DEFIFIS,
RA_MOTADM,
RA_RESCRAI;
SQL SELECT RA_FILIAL, RA_MAT, RA_CC, RA_NOME, RA_MUNICIP, RA_SEXO, RA_ESTCIVI, RA_NASC, 
RA_ADMISSA, RA_DEMISSA, RA_SITFOLH, RA_TNOTRAB, RA_SALARIO, RA_HRSDIA, RA_CODFUNC, 
RA_TIPOADM, RA_DEFIFIS, RA_MOTADM, RA_RESCRAI
FROM SRA010
WHERE D_E_L_E_T_ <> '*'
AND RA_CATFUNC <> 'A' //AUTONOMOS
AND RA_CATFUNC <> 'P' //PRO-LABORE
AND RA_MOTDEMI <> 'T'; 


FuncionarioTemporario: 
LOAD 
EMPRESA AS RA_FILIAL,
'' AS RA_MAT,
LEFT(CCT,5) AS RA_CC,
CCT AS RA_CC_COMP,
"Nome do Funcionário" AS RA_NOME,
'' AS RA_MUNICIP,
'' AS RA_SEXO,
'' AS RA_ESTCIVI,
'TEMP' AS RA_SITFOLH,
'' AS RA_NASC, 
DATE(Admissão,'YYYYMMDD') AS RA_ADMISSA, 
DATE(RESCISÃO,'YYYYMMDD') AS RA_DEMISSA, 
'' AS RA_TNOTRAB, 
'' AS RA_SALARIO, 
'' AS RA_HRSDIA,
'' AS RA_CODFUNC,
'' AS RA_TIPOADM,
'' AS RA_DEFIFIS,
'' AS RA_MOTADM,
'' AS RA_RESCRAI

FROM [lib://Planilhas (arobrasil_administrador)/RH\Temporarios $(vrAno).xlsx]
(ooxml, embedded labels, header is 1 lines, table is [TEMPORARIOS ]);

LOAD * RESIDENT Funcionario;

CONCATENATE

LOAD * RESIDENT FuncionarioTemporario;



STORE Funcionario INTO ...........