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: 
Not applicable

Right Join com mais de um campo em comum

Bom dia!

Como fazer um right join com mais de um campo em comum.

Estou fazendo um  right join e o hash128(id,nota,ano,mes), mas não dá certo.

Tabela 1

idnotamesanovalor
101606201420
101506201430
101206201440
151206201450

Tabela2

idnotamesano
1016062014
1015062014
1012062014
1013062014

Resultado que desejo:

idnotamesanovalor
101606201420
101506201430
101206201440
1013062014

Carrega sempre todos os dados da tabela2(por isso usei o right join)

Esses não são dados reais, tentei fazer uma simulação, ficou muito parecido com meus dados reais.

Labels (1)
32 Replies
thiago_mlg
Creator II
Creator II

Se tiver mais alguma dúvida em especifico só falar que tentamos te ajudar.

Not applicable
Author

O resident só funciona quando eu pego os dados do excel, quando tento pegar do banco ele nao funciona.

Tabela1

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2,

valor

sql select 

id,

nota,

mês,

ano,

valor

from .....

Tabela2:

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2

resident Tabela2;

right join (Tabela2)

...................

Só uma simulação

Not applicable
Author

percebi que você usa apenas rigth join, enquanto eu uso right join(tabela1)

Not applicable
Author

qual a diferença

thiago_mlg
Creator II
Creator II

Breno, bom dia!

Precisamos antes entender o comando Resident.

Resident será usado se for necessário carregar os dados de uma tabela carregada anteriormente, ou seja, você poderá associar o Resident apenas a uma tabela que você já carregou de forma normal usando o from.

Então abaixo descrevo o processo como um todo.

TABELA1  ( tabela que não pode ser alterada - carregue-a normalmente sem alterações )

LOAD id,

    nota,

    mês,

    ano,

    valor

FROM

C:\Users\Fabio\Desktop\TABELA1.xlsx

(ooxml, embedded labels, table is Plan1);

Tabela 2:                    aqui vc vai novamente carregar os dados da tabela 1.. só que ia chamar de tabela 2 e ira mudar os campos para nao dar chave sintética E AO INVES DO FROM VC USARÁ O RESIDENT TRAZENDO OS DADOS DA TABELA1

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2,

        valor

RESIDENT TABELA1;

right join

LOAD

id as id2,

nota as nota2,

mês as mês2,

ano as ano2

FROM

C:\Users\Fabio\Desktop\TABELA2.xlsx

(ooxml, embedded labels, table is Plan1);  AQUI VC TEM QUE USAR O FROM, POIS AINDA NAO CARREGOU OS DADOS DA TABELA2 NO QLIKVIEW...   SE VC JA TIVESSE CARREGADO EM ALGUM MOMENTO ANTERIOR NO CÓDIGO, PODERIA USAR O RESIDENT

Espero que ajude. Abraços

thiago_mlg
Creator II
Creator II

funciona da seguinte maneira..

tabela1

load *

from xxx

right join       - quando não se usa o (tabela)  ele vai unir as duas tabelas que estão entre o comando.. no caso a tabela 1 e tabela 2

tabela2

2 caso..

tabela1

load

tabela2

load

right join (tabela1) neste caso ele vai dar join da tabela 1 com a tabela3.. como existe outra tabela no meio do código eu preciso especificar qual a tabela que eu estou dando join.

tabela3

load

Not applicable
Author

por algum motivo que ainda nao descobrir meu resident não está funcionando, quando eu troco ele por sql select e carrego novamente os dados funciona.

Not applicable
Author

por algum motivo que ainda nao descobrir meu resident não está funcionando, quando eu troco ele por sql select e carrego novamente os dados funciona.

thiago_mlg
Creator II
Creator II

se puder colocar aqui exatamente o código que esta tentando carregar ou o arquivo qvw posso verificar o que está errado.

Not applicable
Author

Não posso colocar os dados reais por normas da empresa, mais apenas tiro o resident e coloco sql e carrego novamente os dados ele funciona