Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
fabio_vallone
Creator
Creator

Left join sem nulls

Boa tarde amigos.

Tenho duas tabelas, na Tabela A eu tenho uma parte de meus clientes (não todos), e na coluna B eu tenho os produtos que todos os clientes consumiram, mês a mês (não apenas os clientes da tabela A). Gostaria de fazer uma ligação entre estas tabelas, de forma que o Qlik mostre todo o grupo de clientes da tabela A, mesmo que nenhum item tenha sido comprado no período, e que só traga da Tabela B os produtos adquiridos por esta fatia de clientes (ou seja, que extraia somente um pedaço da tabela B).

Tentei unir por chave primária as tabelas, também tentei por Left Join, porém o Qlik mantém uma linha "null" ao final da tabela de clientes e valores adquiridos, onde ele soma todos os produtos de clientes que não encontrou relação.

Eu até consigo resolver isso via "Ocultar valor quando nulo", na dimensão do código do cliente (propriedades da tabela), porém receio que este caminho não seja o mais adequado pra resolver a questão. O ideal seria carregar no painel só os clientes e os produtos destes clientes, para não haver perdas de relacionamento e possíveis inconsistências de valor.

Alguém tem uma sugestão? Desde já agradeço.

Fabio.

Labels (2)
1 Solution

Accepted Solutions
lucianosv
Specialist
Specialist

Bom dia.

Você terá que calcular:

=if(IsNull(Sum(cliValor)), 0,Sum(cliValor))

View solution in original post

6 Replies
mdfernan
Contributor III
Contributor III


Olá Fábio,

pode só postar o código que vc utilizou no desenvolvimento do Left Join?

fabio_vallone
Creator
Creator
Author

Olá Marcelo,

Deixa eu fazer uma errata: o valor "null" só aparece quando eu ligo as duas tabelas por chave (conforme anexo); pelo Left Join ele corrige a tabela e só traz o valor que interessa. Mas ainda restou uma dúvida: os clientes sem produto vendido "somem" da tabela... tem como visualizar todos, mesmo aqueles que não tiveram produtos adquiridos?

mdfernan
Contributor III
Contributor III

Pra mim o Left Join funcionou...

A:

LOAD * Inline [

cliCod, cliNome

1, Joao

2, Jose

3, Maria

];

Left Join(A)

LOAD * Inline [

cliCod, cliProduto, cliValor

1, caneta, 10

1, lapis, 5

4, oculos, 100

];

Capturar1.PNG

fabio_vallone
Creator
Creator
Author

Sim Marcelo, realmente o Left Join funcionou pra trazer só o produto adquirido pelo range de clientes.

A dúvida que restou foi: como fazer a tabela mostrar assim:

João = 15

José = 0

Maria = 0

É possível?

lucianosv
Specialist
Specialist

Bom dia.

Você terá que calcular:

=if(IsNull(Sum(cliValor)), 0,Sum(cliValor))

fabio_vallone
Creator
Creator
Author

Luciano,

Funcionou, obrigado!

Abs