Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Exemplo de Link table

Olá pessoal,

Segue um exemplo de Link Table.

Espero que ajude a todos.


Venda:
Load
AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
//Ano,
//Mês,
//[Código Cliente],
[Valor Venda]
FROM LinkTable.xls (biff, embedded labels, table is [Venda$]);
Orcamento:
Load
AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
//Ano,
//Mês,
//[Código Cliente],
[Valor Orcamento]
FROM LinkTable.xls (biff, embedded labels, table is [Orcamento$]);
Cliente:
Load
[Código Cliente],
[Nome Cliente]
FROM LinkTable.xls (biff, embedded labels, table is [Cliente$]);

//====================================================
// LINK TABLE
//====================================================
LinkTable:
Load DISTINCT
AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
Ano,
Mês,
[Código Cliente]
FROM LinkTable.xls (biff, embedded labels, table is [Venda$]);
LinkTable:
Load DISTINCT
AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
Ano,
Mês,
[Código Cliente]
FROM LinkTable.xls (biff, embedded labels, table is [Orcamento$]);


5 Replies
Not applicable
Author

Ola Fernando

Isso me ajudou agora em algumas resoluções que eu estava precisando.

Abraços

Igor

cesaraccardi
Specialist
Specialist

Tonial,

Eu estava analisando seu exemplo e me surgiu uma dúvida, percebi que nas suas chaves quando você concatena os campos você coloca um caracter entre eles '|' ou ')'. Eu costumo fazer isso também porque imagino que possa haver o seguinte problema:

Campo1Campo2Campo1 & Campo2
Linha 1100220100220
Linha 2100220100220


Duas linhas com valores diferentes para os campos, porém o resultado da chave fica com o mesmo valor e é interpretado da mesma forma. Apesar disso, nunca testei se de fato o QlikView interpreta a concatenação da mesma forma. Você sabe me dizer se é realmente necessário colocar os separadores?

Abraços

Not applicable
Author

Olá Cesar,

Sua colocação esta perfeita e realmente é necessário colocar o separador pelo motivo exposto por você. O separador ')' foi por engano, sempre utilizo o pipe '|'.

Você pode fazer o seguinte teste.

Com base nos dados que você colocou utilizar a função AutoNumberHash128, você verá que ao suprirmos o separador, o resultado para a concatenação dos dois campos será a mesma e ao colocarmos o separador o resultado será diferente.

Segue exemplo.


TESTE:
LOAD
*,
Campo1&Campo2 AS KEY1,
AutoNumberHash128(Campo1&Campo2) AS KEY2,
Campo1&'|'&Campo2 AS KEY3,
AutoNumberHash128(Campo1&'|'&Campo2) AS KEY4
INLINE [
Campo1, Campo2
1002, 20
100, 220
];


cesaraccardi
Specialist
Specialist

Perfeito Tonial,

Fiz uma aplicação de teste com o script que você mostrou e ficou evidente a necessidade de incluir um separador entre os campos, se isto não for feito o QlikView interpreta como a mesma chave.

Obrigado!

evandroaps
Contributor
Contributor

Obrigado Fernando ! Ótimo POST