Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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;

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

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;

View solution in original post

1 Reply
Anonymous
Not applicable
Author

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;