Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
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;