Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

tem como?

Pessoal , estou em um duvida cruel

preciso desenvolver um qvd de fornecedores

mas tenho muitas filiais com o nome parecido

Exemplo

BASF

BASF SA

BASF S/A

BASF LTDA

o que eu preciso é achar uma forma de juntar todas essas filiais em uma só

por exemplo BASF

alguem tem alguma ideia?

1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Roberto,

Tudo vai depender do quanto está bagunçado esses nomes, se for esse exemplo que você colocou, isso resolve:

Load MinString(Nome) as Nome

From Tab1

Group By Left(Nome,4);

Porém, ele fará isso para todas as empresas que tem os primeiros 4 caracteres iguais, o que não é muito seguro.

O que você pode fazer é criar uma tabela de relação entre os registros errados, da sequinte forma:

Errado, Certo

BASF,BASF S/A

BASF SA,BASF S/A

BASF S/A,BASF S/A

BASF LTDA,BASF S/A

Isso para todos os registros errados, como se fosse um agrupador, depois de um LEFT fazer no script fazer:

IF(IsNull(Certo),Nome,Certo) as Nome

O proplema nesse caso é que depende de intervenção humana, ou seja, suscetível a erros.

O ideal realmente é que seja corrigido o problema na fonte, com treinamento, alteração do software quando possível. Você pode criar indicadores de qualidade dos cadastros.

Da uma uma estuda em QMS (Quality Management Systems), vai lhe ajudar nessas questões.

Grande abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

3 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Roberto,

Tudo vai depender do quanto está bagunçado esses nomes, se for esse exemplo que você colocou, isso resolve:

Load MinString(Nome) as Nome

From Tab1

Group By Left(Nome,4);

Porém, ele fará isso para todas as empresas que tem os primeiros 4 caracteres iguais, o que não é muito seguro.

O que você pode fazer é criar uma tabela de relação entre os registros errados, da sequinte forma:

Errado, Certo

BASF,BASF S/A

BASF SA,BASF S/A

BASF S/A,BASF S/A

BASF LTDA,BASF S/A

Isso para todos os registros errados, como se fosse um agrupador, depois de um LEFT fazer no script fazer:

IF(IsNull(Certo),Nome,Certo) as Nome

O proplema nesse caso é que depende de intervenção humana, ou seja, suscetível a erros.

O ideal realmente é que seja corrigido o problema na fonte, com treinamento, alteração do software quando possível. Você pode criar indicadores de qualidade dos cadastros.

Da uma uma estuda em QMS (Quality Management Systems), vai lhe ajudar nessas questões.

Grande abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Sim cara na verdade nao esta "bagunçado" é que uma empresa tem varias filiais diferentes , por isso tem varias , isso ja é uma regra de negocio da empresa , vou tentar fazer da sua forma depois eu posto o resultado.

vlww

erichshiino
Partner - Master
Partner - Master

Concordo com o Aderlan. Você pode ficar muito vulnerável a erros no script.

Talvez, se todas começarem da mesma forma, você poderia usar uma sintaxe para trazer apenas o primeiro nome de cada filial usando o substring.

Poderia ficar assim:

Load distinct substringfield(Nome,' ',1) as Abreviacao, Nome

resident TabelaOriginal;

Espero que ajude.

Abs,

Erich