Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Доброго дня Коллеги.
Давно ломаю голову над задачей с которой наверняка уже сталкивались.
Есть информация о продажах в разрезе клиентов. Задача - оценить сколько клиентов новых, сколько потерянных, сколько сохранено. Оцениваем по месяцу.
Если клиент купил впервые - это новый (это вообще самый первый месяц)
Если в прошлом покупал - но сейчас нет - потерянный
Если покупал в прошлом и купил сейчас - сохраненный
Если в прошлом не покупал, но с прошлой покупки прошло менее 10 месяцев - восстановленный.
Уверен в Клике есть красивый способ. Мне в голову приходят только некрасивые и выполняемые на стороне источника данных.
Буду признателен за советы
Привет.
Был вопрос, сколько новых клиентов помесячно.
Решил так: Подсчитал сколько клиентов в месяц имеют дату отгрузки равной минимальной дате в целом по всему реестру продаж.
Формула такая родилась:
Sum({1 <ScladMovesVidID={'21'}>}
aggr( DISTINCT
if((min({1 <ScladMovesVidID={'21'}>} Total <ПартнерID> дата1)) = min({1<ScladMovesVidID={'21'}>} дата1), 1)
, ПартнерID))
Но по вашей задаче я бы смотрел решение скриптом. Надо подумать, каким образом можно выйти на каждое условие.
"Если клиент купил впервые - это новый (это вообще самый первый месяц)"
Какие признаки? Как уже упомянул, минимальная дата отгрузки по всем периодам = дате отгрузки в месяце, следовательно первая отгрузка нового клиента. Либо первая запись отгрузки клиента в реестре, отсортированном по контрагентам и датам, тоже первая отгрузка нового клиента, в этом случае можем уже проставить номера отгрузок, либо номер месяца отгрузки. Далее это можно будет как-то обыграть.
И далее по пунктам, в таком же духе.
Может не совсем понятно описал, пишу на ходу.
Задача интересная.
Добрый день.
Как вариант:
создаем таблицу
Temp:
LOAD
MonthName (AddMonths(now(0),-11+RowNo())) as month,
if( mod(RowNo(),10)=1,1,if(mod(RowNo(),10)=2,10,100) ) as koef
AUTOGENERATE 10;
По месяцам привязать к ней ваших клиентов.
И дальше смотреть по mod(sum(koef),100)
1- новый
10-потерянный
11-сохраненный
0-восстановленный