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

Vincular dados no Script

Bom dia, em meu projeto eu tenho uma tabela com as filiais, então cada filial tem um número (001,002,003,004) e assim por diante,

a questão é que a filial 019 e a filial 400 são no mesmo prédio portanto eu tenho que unificar as duas em meus calculos, estou usando este scritp nas tabelas fato:

if  (id_unidade='201','001',

  if(id_unidade='019','400',

  if(id_unidade='107','094',

  if(id_unidade='008','108',

  if(id_unidade='011','092',

  if(id_unidade='013','093',

  if(id_unidade='900','901',

  if(id_unidade='401','190',

  if(id_unidade='402','191',

  if(id_unidade='702','601',

  if(id_unidade='703','602',

  if(id_unidade='704','603',

  if(id_unidade='092','071',

  if(id_unidade='770','700',

  if(id_unidade='018','700',

  if(id_unidade='600','701',

  if(id_unidade='660','701',id_unidade))))))))))))))))) as id_unidade

porém todos as tabelas que tenham id_unidade eu preciso colocar este codigo. Esta correto fazer assim ou tem alguma coisa mais facil? gostaria de tratar no script ou mesmo na criação do arquivo .QVD. Alguma sugestão para eu melhorar este codigo?

Labels (2)
1 Solution

Accepted Solutions
nicolett_yuri

Verifique a função MAPPING LOAD, ela cria um tabela de de/para conforme o Regério informou.

Mapping LOAD é uma tabela que fica na memória do QLikView durante a carga e serve para realizar um de/para. Essa tabela deve ter duas colunas, sendo a primeira coluna "de" e a segunda coluna o "para"

Depara:

Mapping LOAD * INLINE [

x, y

1, 2

2, 3

3, 4

];

Depois, para utilizar essa tabela de de/para, basta utilizar a função APPLYMAP ou Mapsubstring.

APPLYMAP o valor precisa ser idêntico a sequencia de caractere informado no mapa

Mapsubstring o valor precisa conter a sequencia de caractere informado no mapa

LOAD

APPLYMAP( 'Depara', COLUNA) as COLUNA

Mapsubstring( 'Depara', COLUNA2) as COLUNA2

FROM x.qvd;

View solution in original post

10 Replies
rogerioqv
Creator II
Creator II

Hamilton,

Eu utilizaria uma tabela inline, onde teria o DE-->PARA... ANTIGAFILIAL / NOVAFILIAL.

Creio que assim não necessites utilizar o script para todas as tabelas... farias a vinculação a eles e utilizaria o campo NOVAFILIAL para agrupamento.

Abraços.

junior_ehlke
Creator III
Creator III
Author

ótimo, isto na criação do arquivo QVD mesmo? ou no próprio script?

rogerioqv
Creator II
Creator II

Hamilton,

Em qualquer um dos dois, desde que vc faça a modelagem no script do documento final.

Abraços.

junior_ehlke
Creator III
Creator III
Author

Obrigado, vou testar.

nicolett_yuri

Verifique a função MAPPING LOAD, ela cria um tabela de de/para conforme o Regério informou.

Mapping LOAD é uma tabela que fica na memória do QLikView durante a carga e serve para realizar um de/para. Essa tabela deve ter duas colunas, sendo a primeira coluna "de" e a segunda coluna o "para"

Depara:

Mapping LOAD * INLINE [

x, y

1, 2

2, 3

3, 4

];

Depois, para utilizar essa tabela de de/para, basta utilizar a função APPLYMAP ou Mapsubstring.

APPLYMAP o valor precisa ser idêntico a sequencia de caractere informado no mapa

Mapsubstring o valor precisa conter a sequencia de caractere informado no mapa

LOAD

APPLYMAP( 'Depara', COLUNA) as COLUNA

Mapsubstring( 'Depara', COLUNA2) as COLUNA2

FROM x.qvd;

junior_ehlke
Creator III
Creator III
Author

Boa tarde Yuri, obrigado pela dica, testei aqui e funcionou em um arquivo teste,

fiz um teste com dois campos, Unidade e Valor, funcionou perfeito porém o código fixa extenso da mesma forma que os IFs.

é que assim, meu projeto esta com 8 tabelas e todas tem o id_unidade, de qualquer forma eu vou ter que colocar esse script em todas correto? para que sejam vinculados todos os valores. como eu disse, o IF funcionou mas nao parece correto.

nicolett_yuri

Única coisa que você precisa repetir é o APPLYMAP para todas as colunas que precisa fazer o de/para

junior_ehlke
Creator III
Creator III
Author

Então, fiz um teste aqui e não funcionou como eu queria, na verdade vou dar uma estudada nela, pode ser bem útil, Obrigado.

junior_ehlke
Creator III
Creator III
Author

Bom dia, obrigado Yuri, o código funcionou perfeitamente em meu projeto, na semana passada eu não tinha entendido muito bem, facilitou consideravelmente meu trabalho. Abraço.