Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
rbarbosa
New Contributor III

Relacionar Campo com parte do campo de outra tabela

Olá pessoal tudo bem? Tenho duas tabelas, movimentação e fornecedores até aí tudo bem

Porém na tabela de movimentação o valor do campo movimentação trás o nome do fornecedor concatenados com um monte de outras coisas.

Gostaria de limpar o nome na tabela movimentação, baseado no arquivo de fornecedores, gerando uma nova coluna.


Segue em anexo os arquivos

Movs = Movimentação

Fornecedores = São Os Fornecedores que quero "pesquisar" na movimentação

Resultado = Que é o que quero obter a partir dos dois arquivos acima, gerei manualmente por serem poucas linhas, apenas para exemplificar.

Tags (1)
1 Solution

Accepted Solutions
Employee
Employee

Re: Relacionar Campo com parte do campo de outra tabela

Tente assim:

Mapa:

Mapping LOAD

  FORNECEDOR,

  '{' & FORNECEDOR & '}'

FROM (ooxml, embedded labels, table is Planilha1);

LOAD

  TextBetween(MapSubString('Mapa',MOVIMENTAÇÃO),'{','}') as FORNECEDOR,

  MOVIMENTAÇÃO,

    DEBITO,

    CREDITO

FROM (ooxml, embedded labels, table is Planilha1);

8 Replies
MVP
MVP

Re: Relacionar Campo com parte do campo de outra tabela

Rodolfo,

fiz usando o join

Como os campos nao tem os mesmos nomes, cria um produto cartesiano que resolvemos com um where e substringcount.....

Sendo franco resolve, mas nao é uma forma boa se tiver muito registro (imagino em alguns milhões....)

2017-01-04 20_57_51-QlikView x64 - [C__tmp_Fornecedores.qvw_].png

MVP
MVP

Re: Relacionar Campo com parte do campo de outra tabela

Tmp:

LOAD

     MOVIMENTAÇÃO,

     DEBITO,

     CREDITO

FROM [movs.xlsx] (ooxml, embedded labels, table is Planilha1);

join

LOAD

     FORNECEDOR

FROM [Fornecedores - Copia.xlsx] (ooxml, embedded labels, table is Planilha1);

Tabela:

NoConcatenate

LOAD

     *

Resident Tmp Where SubStringCount(MOVIMENTAÇÃO,FORNECEDOR)>0;

//

DROP Table Tmp;

Employee
Employee

Re: Relacionar Campo com parte do campo de outra tabela

Tente assim:

Mapa:

Mapping LOAD

  FORNECEDOR,

  '{' & FORNECEDOR & '}'

FROM (ooxml, embedded labels, table is Planilha1);

LOAD

  TextBetween(MapSubString('Mapa',MOVIMENTAÇÃO),'{','}') as FORNECEDOR,

  MOVIMENTAÇÃO,

    DEBITO,

    CREDITO

FROM (ooxml, embedded labels, table is Planilha1);

rbarbosa
New Contributor III

Re: Relacionar Campo com parte do campo de outra tabela

Testei dessa forma, ficou muito bom, trouxe quase todos os resultado, os que não retornou foi por conta de digitação.

Porém alguns dados como cofins, ficaram como um fornecedor, será que tenho esse fornecedor cadastrado ou foi algo no produto cartesiano.

Segue o print cofins.png

rbarbosa
New Contributor III

Re: Relacionar Campo com parte do campo de outra tabela

Excelente resposta Clever, funcionou muito bem também, porém quando preciso tratar o nomes separados e os erros de digitação, temos alguns problemas.

rbarbosa
New Contributor III

Re: Relacionar Campo com parte do campo de outra tabela

Fiz a conferência. realmente tenho os impostos cadastrados como empresa.

Employee
Employee

Re: Relacionar Campo com parte do campo de outra tabela

Quando os impostos são também fornecedores eles estão sempre na mesma ordem? Tipo

PAGTO COFINS 12/2016 - COFINS - BLAH BLAH

rbarbosa
New Contributor III

Re: Relacionar Campo com parte do campo de outra tabela

Não é uma linha de cadastro de imposto, somente com o nome do fornecedor preenchido, vou conversar melhor com o pessoal do contábil pra saber qual motivo deste cadastro, pelo que entendi, é pra facilitar algum processo, porém gera inconsistência nos dados.