Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
dioneicm
New 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
Contributor II

Re: $Syn Table

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

4 Replies
thiago_mlg
Contributor II

Re: $Syn Table

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
Valued Contributor

Re: $Syn Table

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
New Contributor III

Re: $Syn Table

Thiago Obrigado. Entendi o conceito.

dioneicm
New Contributor III

Re: $Syn Table

Luciano muito obrigado por contribuir.

Entendi o conceito.