Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
dioneicm
Contributor III
Contributor III

$Syn Table

Sou iniciante em qlik e estou com dificuldade no relacionamento das tabelas, no modelo de relacionamento está aparecendo 2 $syn.

Como poderia resolver isto? Vou enviar imagem do relacionamento.

1 Solution

Accepted Solutions
thiago_mlg
Creator II
Creator II

Dionei, boa tarde!

O qlikview tem um conceito de relacionamento por nomenclatura de campos, ou seja, entre duas tabelas todos os campos em que o qlikview verificar que possuem o mesmo nome ele irá relacionar, alem disso, o qlikview quando identifica que há mais de um campo com nomes iguais entre duas tabelas, cria uam chave $syn (chave sintética) que nada mais é do que uma chave que relaciona todos esses campos. Para resolver tal problema, basta renomear os campos das tabelas, afim deles terem apenas um campo de ligação, como mostrado abaixo.

Seguindo a lógica dos campos do seu print.. Segue:

na tabela cliente, renomeie os campos cliente código e cliente loja em uma das tabelas, ou faturamento ou Clientes e se os dois campos precisarem ser ligados a tabela faturamento ficará assim:

CLIENTES:

LOAD

[Cliente Codigo]          as Cliente_Cod,

[Cliente Loja]                as Cliente_Loja,

[Cliente Codigo]&[Cliente Loja]           as Chave_cliente,

Cliente

From....


Na tabela faturamento, ficará igual..


FATURAMENTO:

LOAD

colocar todos os campos normal,

[Cliente Codigo]&[Cliente Loja]           as Chave_cliente,

from


Desta forma irá criar apenas uma chave de ligação eliminando a chave sintética. Faça tambem para o outro caso.


Abraços.


Thiago Gonçalo

View solution in original post

4 Replies
thiago_mlg
Creator II
Creator II

Dionei, boa tarde!

O qlikview tem um conceito de relacionamento por nomenclatura de campos, ou seja, entre duas tabelas todos os campos em que o qlikview verificar que possuem o mesmo nome ele irá relacionar, alem disso, o qlikview quando identifica que há mais de um campo com nomes iguais entre duas tabelas, cria uam chave $syn (chave sintética) que nada mais é do que uma chave que relaciona todos esses campos. Para resolver tal problema, basta renomear os campos das tabelas, afim deles terem apenas um campo de ligação, como mostrado abaixo.

Seguindo a lógica dos campos do seu print.. Segue:

na tabela cliente, renomeie os campos cliente código e cliente loja em uma das tabelas, ou faturamento ou Clientes e se os dois campos precisarem ser ligados a tabela faturamento ficará assim:

CLIENTES:

LOAD

[Cliente Codigo]          as Cliente_Cod,

[Cliente Loja]                as Cliente_Loja,

[Cliente Codigo]&[Cliente Loja]           as Chave_cliente,

Cliente

From....


Na tabela faturamento, ficará igual..


FATURAMENTO:

LOAD

colocar todos os campos normal,

[Cliente Codigo]&[Cliente Loja]           as Chave_cliente,

from


Desta forma irá criar apenas uma chave de ligação eliminando a chave sintética. Faça tambem para o outro caso.


Abraços.


Thiago Gonçalo

lucianosv
Specialist
Specialist

Boa tarde.

Os relacionamentos entre as tabelas devem ser por um único campo.

Você têm duas $syn.

Na tabela Faturamento por exemplo, você ao invés de ter os 2 campos Cliente Código e Cliente Loja, você cria o campo no load assim:

[Cliente Código] & [Cliente Loja] as Cliente_Key.


Crie o mesmo campo na tabela clientes, além de manter os campos Cliente Código e Cliente Loja.


Assim você elimina a $syn1.


A outra segue o mesmo raciocínio.

dioneicm
Contributor III
Contributor III
Author

Thiago Obrigado. Entendi o conceito.

dioneicm
Contributor III
Contributor III
Author

Luciano muito obrigado por contribuir.

Entendi o conceito.