5 Replies Latest reply: Oct 5, 2015 8:38 AM by ANDRE TONINI RSS

    Ligação Tabela do Sistema com Excel

    ANDRE TONINI

      Pessoal,

       

               Estou com uma dúvida, em como fazer uma ligação entre dados do sistema com uma tabela do Excel, ou seja:

       

      1) Mensalmente faço a extração dos dados de vendas do banco de dados do ERP, para saber o valor e para qual cliente vendemos.

      2) Mensalmente recebemos um arquivo em Excel com dados de emplacamentos realizados no Brasil para saber quem adquiriu tais produtos.

       

      Problema:

      Preciso fazer um cruzamento entre essas duas base de dados e que em uma coluna me diga se é cliente SIM ou NÃO, conforme ilustração abaixo:

       

      999999.jpg

       

       

      A lógica seria a seguinte, verificar na tabela NOTAS_VENDAS todos os NTV_CLI_CODIGO e confrontar se na tabela do Excel tem o mesmo código de cliente CLI_CODIGO (NTV_CLI_CODIGO = CLI_CODIGO), caso seja igual então na coluna 'É Cliente?' = SIM caso contrário NÃO.

       

       

       

      SET ThousandSep='.';

      SET DecimalSep=',';

      SET MoneyThousandSep='.';

      SET MoneyDecimalSep=',';

      SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';

      SET TimeFormat='hh:mm:ss';

      SET DateFormat='DD/MM/YYYY';

      SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

      SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';

      SET DayNames='seg;ter;qua;qui;sex;sáb;dom';

       

      ODBC CONNECT TO BI;

       

      // ------- Notas de Vendas ------ //     

      SQL SELECT

        NTV_CLI_CODIGO AS CLI_CODIGO, //(Esse campo faço a ligação a tabela abaixo)

        NTV_NUMERO,

        NTV_DATA,

        NTV_VALORLIQUIDO

      FROM NOTAS_VENDAS WHERE NTV_DATA > '30.09.2015';

       

      // ------- Banco de Dados de Emplacamentos ------ //

      LOAD

           PLACA,

           FABRICANTE,

           CLI_CODIGO

      FROM

      [Z:\ANDRE TONINI\Placa.xlsx]

      (ooxml, embedded labels, table is Plan1);




      Desde já agradeço.


      att,


      André Tonini

        • Re: Ligação Tabela do Sistema com Excel
          Vinicius Roteli

          André,

           

           

          Você criar um Campo fixo no load da tabela Excel, ou na extração do BD.

           

           

          LOAD

               PLACA,

               FABRICANTE,

               CLI_CODIGO,

               'S' AS FLAG

          FROM

          [Z:\ANDRE TONINI\Placa.xlsx]

          (ooxml, embedded labels, table is Plan1);

           

           

          Depois você teria duas opções na dimensão ou na expressão de uma tabela.

           

           

          Na Dimensão calculada voc~e colocaria

           

           

          =if(flag='S','SIM','NÃO') e colocaria o rótulo “CLIENTE”

           

           

          Ou faça  a mesma coisa na expressão na definição dela coloque

           

           

          =if(flag='S','SIM','NÃO') e colocaria o rótulo “CLIENTE”   o Flag seria ‘S’  pra todos registros do excel, precisa ver se antende o flag pode ser também na sua tabela principal que deve ser a do BD, faça o teste e se tiver alguma dúvida me avise.

          • Re: Ligação Tabela do Sistema com Excel
            Yuri Nicolett

            André, faça por ApplyMap. Ficaria mais ou menos assim:

             

            Banco_Emplacamento:

            Mapping LOAD

                 CLI_CODIGO,

                  'SIM' as FLG_CLIENTE

            FROM [Z:\ANDRE TONINI\Placa.xlsx] (ooxml, embedded labels, table is Plan1);



            ODBC CONNECT TO BI;


            // ------- Notas de Vendas ------ //    

            Base:

            LOAD

                  *,

                  ApplyMap('Banco_Emplacamento', NTV_CLI_CODIGO, 'NÃO') as FLG_CLIENTE;

            SQL SELECT

              NTV_CLI_CODIGO AS CLI_CODIGO, //(Esse campo faço a ligação a tabela abaixo)

              NTV_NUMERO,

              NTV_DATA,

              NTV_VALORLIQUIDO

            FROM NOTAS_VENDAS WHERE NTV_DATA > '30.09.2015';