1 Reply Latest reply: May 13, 2015 9:02 AM by Bruno Souza RSS

    Informações históricas

      Caros,

       

      Tenho a seguinte situação: Hoje eu classifico meus clientes em:

      clientes ATIVOS e clientes INATIVOS

      e clientes NOVOS e clientes ANTIGOS

       

      Clientes ATIVOS são clientes que efetuaram sua ULTIMA compra no prazo dos últimos 6 meses,

      ao contrário são INATIVOS (Tipo Cliente)

       

      Clientes NOVOS são clientes que efetuaram sua PRIMEIRA compra nos últimos 6 meses,

      ao contrário são ANTIGOS (Status Cliente)

       

      Meu código hoje funciona perfeitamente, mas ele não guarda o histórico do período anterior aos últimos seis meses de Today().

       

      Tenho um gráfico de linha de tempo onde são apresentados na dimensão Mês/Ano o count destas classificações de Clientes.

      Gostaria de saber como guardar esse histórico da quantidade de Clientes destas classificações.

       

      Código:

       

      TempStatusCliente:

      LOAD

      [CPF/CNPJ Cliente],

      Max([Data/Hora]) AS ULTIMA_COMPRA,

      Min([Data/Hora]) AS PRIMEIRA_COMPRA,

      AddMonths(today(),-6) AS PRAZO

      Resident Fato

      Group by [CPF/CNPJ Cliente];

       

       

      [StatusCliente]:

      LOAD

      [CPF/CNPJ Cliente],

      IF(PRIMEIRA_COMPRA >= PRAZO, 'NOVO', 'ANTIGO') as [Status do Cliente],

      IF(ULTIMA_COMPRA  >= PRAZO, 'ATIVO','INATIVO') as [Tipo de Cliente]

      Resident TempStatusCliente;

      DROP Table TempStatusCliente;

        • Re: Informações históricas
          Bruno Souza

          Oi, Bruna.

           

          Tanta algo assim:

           

          Let vDataInicial = Num(MakeDate(2012, 1, 1));

          Let vDataFinal = Num(MonthStart(Today()));

           

           

          MesesTemp:

          Load

            Concat(Distinct MesTemp) as MesesTemp;

          Load Distinct

            Num(MonthStart($(vDataInicial) + RowNo() - 1)) as MesTemp

          AutoGenerate $(vDataFinal) - $(vDataInicial) + 1;

           

           

          For Each mes in Peek('MesesTemp')

           

          [StatusCliente]:

          LOAD

            MonthName($(mes)) as [Mês de Referência],

            [CPF/CNPJ Cliente],

            IF(PRIMEIRA_COMPRA >= PRAZO, 'NOVO', 'ANTIGO') as [Status do Cliente],

            IF(ULTIMA_COMPRA  >= PRAZO, 'ATIVO','INATIVO') as [Tipo de Cliente];

          LOAD

            [CPF/CNPJ Cliente],

            Max(MonthStart([Data/Hora])) AS ULTIMA_COMPRA,

            Min(MonthStart([Data/Hora])) AS PRIMEIRA_COMPRA,

            AddMonths($(mes),-6) AS PRAZO

          Resident Fato

          Where Num(MonthStart([Data/Hora])) <= $(mes)

          Group by [CPF/CNPJ Cliente];

           

          Next mes;