Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Comparar duas tabelas e mostrar as diferenças (CNPJ por exemplo)

Prezados(as), uma dúvida que talvez seja básica para o pessoal experiente. Pesquisei em outros posts, mas não encontrei algo específico.
Tenho duas tabelas (arquivos xlsx por exemplo) conforme segue anexo o .qvw

Na tabela1 em excel eu tenho "x" CNPJ's e como exemplo criei com números ímpares.

Na tabela2 eu tenho "y" e "x" CNPJ's, ou seja, pode haver na tabela2 os mesmos CNPJ's que na tabela1.

O que eu preciso é que o qlikview faça a leitura das duas tabelas e mostre (identifique) em outra tabela (tabela3) os CNPJ's que não existem na tabela1.

No excel é possível fazer via PROC_V, mas quero aprender em qlik e também porque o volume de dados é enorme.

Muito obrigado.

Sérgio

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Sergio,

estou colocando 2 opções

Uma seria usando o NOT Exists() e a outra usando o applymap()

Fiz estes codigos fazendo carga parcial (por isto o resident) pois eu nao tinha os xls.

Mas é uma ideia do que podes fazer.

//====================================================================================

//

// Opcao 1

//

Tmp:

mapping

add LOAD

    CNPJ_CPF_TABELA1,

    'Sim'                as Tem

Resident TABELA1 ;


left join (TABELA2) 

add LOAD

    *,

    ApplyMap('Tmp',CNPJ_CPF_TABELA2,'Não')    as Tem_CNPJ_Tabela1

Resident TABELA2;

//====================================================================================

//

// Opcao 2

//

TABELA3:

add LOAD

     CNPJ_CPF_TABELA2 as CNPJ_CPF_TABELA3

Resident TABELA2 Where not Exists(CNPJ_CPF_TABELA1,CNPJ_CPF_TABELA2);      

//====================================================================================


2018-04-08 09_39_34-QlikView x64 - [C__tmp_compara_tabelas.qvw_].png

furtado@farolbi.com.br

View solution in original post

11 Replies
Clever_Anjos
Employee
Employee

Você quer trabalhar com duas tabelas separadas?

Clever_Anjos
Employee
Employee

Se fosse fazer via procv iria usar CNPJ_CPF como chave de pesquisa?

Anonymous
Not applicable
Author

Correto Clever. vou trabalhar com duas tabelas separadas e a pesquisa (chave) é pelo campo CPF_CNPJ. (Grato)

Anonymous
Not applicable
Author

Bom dia. Caro Clever, desculpas pela demora nas repostas. Agora que estou aprendendo a usar a "community!". A pergunta passa pelo moderador para depois eu conseguir responder.
Sim, CNPJ_CPF é a chave. Tenho dois arquivos (duas tabelas) em excel com diversos CNPJ_CPF. Numa tabela (tabela1) são os clientes que efetuaram compras e na outra tabela (tabela2) está toda a base de clientes. Preciso comparar uma tabela com a outra e verificar quem não comprou, ou seja, a tabela2 contém muito mais CNPJ_CPF que a tabela1. Obrigado!

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Sergio,

estou colocando 2 opções

Uma seria usando o NOT Exists() e a outra usando o applymap()

Fiz estes codigos fazendo carga parcial (por isto o resident) pois eu nao tinha os xls.

Mas é uma ideia do que podes fazer.

//====================================================================================

//

// Opcao 1

//

Tmp:

mapping

add LOAD

    CNPJ_CPF_TABELA1,

    'Sim'                as Tem

Resident TABELA1 ;


left join (TABELA2) 

add LOAD

    *,

    ApplyMap('Tmp',CNPJ_CPF_TABELA2,'Não')    as Tem_CNPJ_Tabela1

Resident TABELA2;

//====================================================================================

//

// Opcao 2

//

TABELA3:

add LOAD

     CNPJ_CPF_TABELA2 as CNPJ_CPF_TABELA3

Resident TABELA2 Where not Exists(CNPJ_CPF_TABELA1,CNPJ_CPF_TABELA2);      

//====================================================================================


2018-04-08 09_39_34-QlikView x64 - [C__tmp_compara_tabelas.qvw_].png

furtado@farolbi.com.br
Anonymous
Not applicable
Author

Caro Alessandro Furtado, muito obrigado pela ajuda.

Ficou 100%

Grande abraço.

Thiago_Justen_

Sergio,

Se o problema foi resolvido não deixe de fechar a thread marcando a resposta do Alessandro como correta.

Abs e Sucesso!!

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

Afurtado, bom dia! A opção 1 não funciona se colocar a tabela com menor quantidade de linhas primeiro? 
Tentei fazer "ida e volta" para ter o campo Tem_CNPJ em ambas as tabelas, mas não consegui. Apenas em uma.

carolinne88
Creator
Creator

Tem alguma forma de fazer ambas as tabelas terem um campo confirmando ou não o 'match' com a outra?