Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Buscar ùltima data de compra excluindo o mês corrente


Bom dia!

Gostaria que me apoiassem com o seguinte problema:


Preciso identificar se os clientes que compraram num determinado  mês selecionado, são novas compras ou não. Para isso tenho dois critérios:

1) O cliente nunca efetuou uma compra efetivamente;

2) A última compra do cliente,  antes da compra do mês selecionado foi um mais de 1 ano (Aqui gostaria de deixar "configurável", alternando para 6 meses, por exemplo.

A minha base é uma base de notas fiscais, que contém diversas notas para cada cliente

Obrigado


4 Replies
nicolett_yuri

Por ser uma informação fixa, creio que o ideal é fazer esse cálculo no script de sua aplicação.

Disponibilize um QVW de exemplo para podermos ajuda-lo melhor

Not applicable
Author

Crie algumas variáveis no script,

LET vUltimos12Meses = DATE(ADDMONTHS(MONTHSTART(TODAY()), -12), 'DD/MM/YYYY');

LET vUltimos6Meses = DATE(ADDMONTHS(MONTHSTART(TODAY()), -6), 'DD/MM/YYYY');

Depois você pode calcular dessa forma:

=IF(COUNT({< DATA_VENDA = {'>=$(=Date(vUltimos12Meses))<$(=Date(Monthstart(MES_SELECIONADO)))'} >}

NOTA_FISCAL) > 0, "Sim", "Não") AS NOVA_COMPRA_ULTIMOS_12_MESES

=IF(COUNT({< DATA_VENDA = {'>=$(=Date(vUltimos6Meses))<$(=Date(Monthstart(MES_SELECIONADO)))'} >} NOTA_FISCAL) > 0, "Sim", "Não") AS NOVA_COMPRA_ULTIMOS_6_MESES

jonas_rezende
Specialist
Specialist

Bom dia, Leonardo Jacquier.

A minha dica é desenvolver via script como orientado por nicolett.yuri Sendo que em cada item poderá produzir como abaixo.

1. A não compra do cliente dar-se-á pelo relacionamento entre as tabelas clientes e vendas. Ou seja, não haverá o código do cliente que não comprou à tabela de vendas. Ex.:

Sum({<[%Cod Cliente] = E({<[%Cod Produto] = {"*"} >} [%Cod Cliente]) >} [#Contador Cliente]);

2. Você poderá filtrar o período na carga e montar um relacionamento da tabela de vendas transformada com a fato principal. Omiti a tabela de cliente por subentender que estará carregada. Ex.:

tmp_Vendas:

LOAD

[%Cod Cliente],

Data,

[#Valor Venda]

From <nome tabela>.qvd

(qvd)

where

Data >= MakeDate(Year(Today(2)-180), Month(Today(2)-180));

NoConcatenate

Vendas:

LOAD

[%Cod Cliente],

Date(Data) as Data,

[#Valor Venda]

Resident tmp_Vendas

order by

[%Cod Cliente],

Data;


DROP Table tmp_Vendas;

Vendas_Transform:

LOAD

[%Cod Cliente],

Date(Max(Data,2))    as [Data Compra Anterior],

Date(Max(Date))  as [Data Compra Atual],

Sum([#Valor Venda]) as [#Total Vendas]

resident Vendas

group by

[%Cod Cliente];

Espero que ajude!

Clever_Anjos
Employee
Employee

Já achou uma solução? Se sim, marque uma das respostas como "Correta" para fechar o tópico e nos ajudar a manter o forum organizado.

Como obter ajuda? Leia antes de postar