9 Replies Latest reply: Feb 13, 2017 4:46 PM by Anderson Silva RSS

    Vendas em Datas Equivalentes (Dimensão Marca e Clientes)

    Anderson Silva

      Pessoal, Boa Tarde!

      Tudo Bem?

       

      Preciso de uma ajuda de vocês mais uma vez para a seguinte questão, algo muito parecido como o que eu havia postado\nteriormente, agora mais detalhado.

       

      Um dos meus principais indicadores é a curva de vendas comparada com a data equivalente, ou seja, a comparação das vendas de hoje  com o mesmo período no ano anterior, para isso tenho duas tabelas (Tabela Data Equivalente por Marca, Tabela Vendas Históricas). Na tabela  "Tabela Data Equivalente por Marca"  tenho as datas equivalentes em 2016 para cada venda em 2017, só que agora por marca. Na  tabela "Vendas Históricas", todas as vendas históricas por marca e cliente. Eu preciso montar uma tabela que mostre a data atual, as vendas no período atual e as vendas no período correspondente por cliente e marca conforme exemplo:.


      Tabela Data Equivalente por Marca:

       

      MARCADataData Equivalente
      MARCA00101/01/201731/12/2015
      MARCA00102/01/201701/01/2016
      MARCA00103/01/201702/01/2016
      MARCA00201/01/201701/01/2016
      MARCA00202/01/201702/01/2016
      MARCA00203/01/201703/01/2016
      MARCA00301/01/201730/12/2015
      MARCA00302/01/201731/12/2015
      MARCA00303/01/201701/01/2016

       

      Tabela Vendas Históricas:

      DataCLIENTEMARCAVendas
      31/12/20151000005MARCA001R$  27.564,00
      01/01/20161000005MARCA001R$  26.361,00
      02/01/20161000005MARCA001R$  23.996,00
      01/01/20161000005MARCA002R$  27.392,00
      02/01/20161000005MARCA002R$  27.460,00
      03/01/20161000005MARCA002R$  22.021,00
      30/12/20151000005MARCA003R$  25.954,00
      31/12/20151000005MARCA003R$  21.351,00
      01/01/20161000005MARCA003R$  27.725,00
      01/01/20171000005MARCA001R$  22.237,00
      02/01/20171000005MARCA001R$  27.224,00
      03/01/20171000005MARCA001R$  24.211,00
      01/01/20171000005MARCA002R$  20.039,00
      02/01/20171000005MARCA002R$  24.792,00
      03/01/20171000005MARCA002R$  20.861,00
      01/01/20171000005MARCA003R$  25.783,00
      02/01/20171000005MARCA003R$  20.119,00
      03/01/20171000005MARCA003R$  25.320,00
      31/12/20151000006MARCA001R$  27.281,00
      01/01/20161000006MARCA001R$  26.564,00
      02/01/20161000006MARCA001R$  20.613,00
      01/01/20161000006MARCA002R$  27.393,00
      02/01/20161000006MARCA002R$  25.392,00
      03/01/20161000006MARCA002R$  29.758,00
      30/12/20151000006MARCA003R$  26.790,00
      31/12/20151000006MARCA003R$  28.327,00
      01/01/20161000006MARCA003R$  26.571,00
      01/01/20171000006MARCA001R$  25.493,00
      02/01/20171000006MARCA001R$  25.779,00
      03/01/20171000006MARCA001R$  24.640,00
      01/01/20171000006MARCA002R$  21.099,00
      02/01/20171000006MARCA002R$  26.751,00
      03/01/20171000006MARCA002R$  29.313,00
      01/01/20171000006MARCA003R$  26.424,00
      02/01/20171000006MARCA003R$  20.028,00
      03/01/20171000006MARCA003

      R$  20.681,00

       

       

      Tabela Final:

           

      DataMARCACLIENTEData EquivalenteVenda AtualVendaDataEquivalente2016
      01/01/2017MARCA001100000531/12/2015R$   22.237,00R$                                27.564,00
      02/01/2017MARCA001100000501/01/2016R$   27.224,00R$                                26.361,00
      01/01/2017MARCA002100000501/01/2016R$   20.039,00R$                                27.392,00
      02/01/2017MARCA002100000502/01/2016R$   24.792,00R$                                27.460,00
      01/01/2017MARCA003100000530/12/2015R$   25.783,00R$                                25.954,00
      02/01/2017MARCA003100000531/12/2015R$   20.119,00

      R$                                21.351,00

       

      Tentei utilizar o Inner Join, mas ele duplica os valores para trazer as vendas equivalentes

       

      Mensagem editada por: Anderson Silva Ajustei a tabela Final com o resultado esperado

        • Re: Vendas em Datas Equivalentes (Dimensão Marca e Clientes)
          Márcio Rodrigo Campestrini

          Bom dia Anderson

           

          Se você fizer o Join entre MARCA/DATA EQUIVALENTE da primeira tabela e MARCA/DATA da segunda tabela não funciona?

          Se possível poste um exemplo para facilitar a análise do problema.

          • Re: Vendas em Datas Equivalentes (Dimensão Marca e Clientes)
            Anderson Silva

            Marcio, Obrigado pela resposta.

            Estou começando meus conhecimentos em SQL, acho que estou errando em alguma coisa simples.

            Segue o script

             

            Calendardeparatmp:

            LOAD * INLINE [

            MARCA, Data, DataEquivalente,

            MARCA001, 01/01/2017, 31/12/2015

            MARCA001, 02/01/2017, 01/01/2016

            MARCA001, 03/01/2017, 02/01/2016

            MARCA002, 01/01/2017, 01/01/2016

            MARCA002, 02/01/2017, 02/01/2016

            MARCA002, 03/01/2017, 03/01/2016

            MARCA003, 01/01/2017, 30/12/2015

            MARCA003, 02/01/2017, 31/12/2015

            MARCA003, 03/01/2017, 01/01/2016

            ];

             

             

            Vendastmp:

            LOAD * INLINE [

            Data, CLIENTE, MARCA, Vendas

            31/12/2015, 1000005, MARCA001, R$ 27.564,00

            01/01/2016, 1000005, MARCA001, R$ 26.361,00

            02/01/2016, 1000005, MARCA001, R$ 23.996,00

            01/01/2016, 1000005, MARCA002, R$ 27.392,00

            02/01/2016, 1000005, MARCA002, R$ 27.460,00

            03/01/2016, 1000005, MARCA002, R$ 22.021,00

            30/12/2015, 1000005, MARCA003, R$ 25.954,00

            31/12/2015, 1000005, MARCA003, R$ 21.351,00

            01/01/2016, 1000005, MARCA003, R$ 27.725,00

            01/01/2017, 1000005, MARCA001, R$ 22.237,00

            02/01/2017, 1000005, MARCA001, R$ 27.224,00

            03/01/2017, 1000005, MARCA001, R$ 24.211,00

            01/01/2017, 1000005, MARCA002, R$ 20.039,00

            02/01/2017, 1000005, MARCA002, R$ 24.792,00

            03/01/2017, 1000005, MARCA002, R$ 20.861,00

            01/01/2017, 1000005, MARCA003, R$ 25.783,00

            02/01/2017, 1000005, MARCA003, R$ 20.119,00

            03/01/2017, 1000005, MARCA003, R$ 25.320,00

            31/12/2015, 1000006, MARCA001, R$ 27.281,00

            01/01/2016, 1000006, MARCA001, R$ 26.564,00

            02/01/2016, 1000006, MARCA001, R$ 20.613,00

            01/01/2016, 1000006, MARCA002, R$ 27.393,00

            02/01/2016, 1000006, MARCA002, R$ 25.392,00

            03/01/2016, 1000006, MARCA002, R$ 29.758,00

            30/12/2015, 1000006, MARCA003, R$ 26.790,00

            31/12/2015, 1000006, MARCA003, R$ 28.327,00

            01/01/2016, 1000006, MARCA003, R$ 26.571,00

            01/01/2017, 1000006, MARCA001, R$ 25.493,00

            02/01/2017, 1000006, MARCA001, R$ 25.779,00

            03/01/2017, 1000006, MARCA001, R$ 24.640,00

            01/01/2017, 1000006, MARCA002, R$ 21.099,00

            02/01/2017, 1000006, MARCA002, R$ 26.751,00

            03/01/2017, 1000006, MARCA002, R$ 29.313,00

            01/01/2017, 1000006, MARCA003, R$ 26.424,00

            02/01/2017, 1000006, MARCA003, R$ 20.028,00

            03/01/2017, 1000006, MARCA003, R$ 20.681,00

            ];

             

            Vendastmp1:

            NoConcatenate

            load * Resident Vendastmp;

             

            Vendastmp2:

            NoConcatenate

            Load Data as DataEquivalente,MARCA as MARCA,Vendas as ValorEquival Resident Vendastmp;

             

            Inner join(Calendardeparatmp)

             

            load * Resident Vendastmp1;

             

            Inner join(Calendardeparatmp)

             

            load * Resident Vendastmp2;

            drop Tables Vendastmp,Vendastmp1,Vendastmp2;

             

            Abs,

            • Re: Vendas em Datas Equivalentes (Dimensão Marca e Clientes)
              Anderson Silva

              Márcio, quase deu certo aqui.

              Retirei o último join, mas não retornou o valor das vendas equivalentes.

              CommunitEquivalenteData.png