Skip to main content
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?