|
Отчет по посещениям. | ☑ | ||
---|---|---|---|---|
0
Zombi
28.09.16
✎
15:20
|
Есть регистр накопления с данными по посещениям клиентов(период, клиент, тренер и.т.д.) Необходимо сделать отчет где выводить действующих клиентов, новых и потерянных. Сортировать клиентов нужно исходя из даты последнего посещения. Проблема в том, что отчет нужен по периодам. То есть формируем за год, должны получить потерянных клиентов за январь(потерянный клиент это тот у кого дата последнего посещения меньше чем январь - 1 месяц), потерянных клиентов за февраль(дата последнего посещения меньше чем февраль - 1 месяц) и.т.д. Ну все это надо в запросе, конечно. Может кто то подобное делал, киньте запрос, пожалуйста.
|
|||
1
Nuobu
28.09.16
✎
15:21
|
Когда будешь строить запрос, то вместо первой даты, отними от неё 1 месяц.
|
|||
2
Горогуля
28.09.16
✎
15:25
|
я на коленке такое ваял. сравнение сумм указанного периода с прошлым годом. используй силу полного соединения
|
|||
3
ovrfox
28.09.16
✎
15:32
|
Неоднозначная задача. Не указано каким считать клиента, который посещает раз в два месяца.
Это шесть раз потерянный клиент или если на дату отчета период меньше месяца, то он не потеряный? |
|||
4
ovrfox
28.09.16
✎
15:34
|
И , кстати, если клиент уехал на рождественские каникулы с 25.12 по 14.01, то до 15 числа в январе считать его потерянным, а с 15 уже не считать таковым? Или как-то по другому?
|
|||
5
Zombi
28.09.16
✎
15:40
|
(3) (4) Отчет формируется только за полный месяц. Если клиент ходит раз в 2 месяца, будет тренеру 6 раз идти как потерянный. Но таких явно не много. Или вообще нет таких.
|
|||
6
ovrfox
28.09.16
✎
16:43
|
ВЫБРАТЬ
0 КАК Сдвиг ПОМЕСТИТЬ Сдвиги ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 10 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 11 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 12 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаОтч, МЕСЯЦ), МЕСЯЦ, -Сдвиги.Сдвиг) КАК НачПериода ПОМЕСТИТЬ Периоды ИЗ Сдвиги КАК Сдвиги ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(Посещения.Период) КАК Период, Посещения.Клиент КАК Клиент, Периоды.НачПериода КАК НачПериода ПОМЕСТИТЬ ПоследниеПосещения ИЗ РегистрСведений.Посещения КАК Посещения ВНУТРЕННЕЕ СОЕДИНЕНИЕ Периоды КАК Периоды ПО Посещения.Период < Периоды.НачПериода СГРУППИРОВАТЬ ПО Посещения.Клиент, Периоды.НачПериода ИМЕЮЩИЕ МАКСИМУМ(Посещения.Период) >= ДОБАВИТЬКДАТЕ(Периоды.НачПериода, МЕСЯЦ, -1) ИНДЕКСИРОВАТЬ ПО Клиент, НачПериода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПППред.Клиент, ДОБАВИТЬКДАТЕ(ПППред.НачПериода, МЕСЯЦ, -1) КАК НачПериода, ПППред.НачПериода КАК КонПериода ПОМЕСТИТЬ Новые ИЗ ПоследниеПосещения КАК ПППред ГДЕ ДОБАВИТЬКДАТЕ(ПППред.НачПериода, МЕСЯЦ, 12) <> НАЧАЛОПЕРИОДА(&ДатаОтч, МЕСЯЦ) И НЕ (ПППред.Клиент, ДОБАВИТЬКДАТЕ(ПППред.НачПериода, МЕСЯЦ, -1)) В (ВЫБРАТЬ ПоследниеПосещения.Клиент, ПоследниеПосещения.НачПериода ИЗ ПоследниеПосещения) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПППред.Клиент, ПППред.НачПериода, ДОБАВИТЬКДАТЕ(ПППред.НачПериода, МЕСЯЦ, 1) КАК КонПериода ПОМЕСТИТЬ Потерянные ИЗ ПоследниеПосещения КАК ПППред ГДЕ ПППред.НачПериода <> НАЧАЛОПЕРИОДА(&ДатаОтч, МЕСЯЦ) И НЕ (ПППред.Клиент, ДОБАВИТЬКДАТЕ(ПППред.НачПериода, МЕСЯЦ, 1)) В (ВЫБРАТЬ ПоследниеПосещения.Клиент, ПоследниеПосещения.НачПериода ИЗ ПоследниеПосещения) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПППред.Клиент, ПППред.НачПериода, ПППост.НачПериода КАК КонПериода ПОМЕСТИТЬ Текущие ИЗ ПоследниеПосещения КАК ПППред ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеПосещения КАК ПППост ПО ПППред.Клиент = ПППост.Клиент И (ДОБАВИТЬКДАТЕ(ПППред.НачПериода, МЕСЯЦ, 1) = ПППост.НачПериода) |
|||
7
Zombi
29.09.16
✎
08:00
|
(6) Да уж, разжевал и в рот положил. Спасибо большое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |