3 Replies Latest reply: May 30, 2012 9:03 PM by Erich Shiino RSS

    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?

        • tem como?
          Aderlan Rodrigues

          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.

            • tem como?

              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

                • tem como?
                  Erich Shiino

                  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