Работа с базой номеров

12
dotern
На сайте с 21.09.2016
Offline
123
1642

Какие есть методы и программы для работы с номерами? Суть проблемы: есть база всех заказов, которая разбивается по дате заказа. Так вот задача отсортировать клиентов, которые не покупали уже последние 6 месяцев. Но проблема в том, что если выбрать даты покупок, которые совершались до необходимого периода, то туда попадают также клиенты, которые покупали и в этом периоде и в следующем, то есть недавно.

Идея такая: вначале создать список старых заказов, а потом список новых заказов и с помощью какого-то алгоритма удалить номера из первого списка, если этот номер есть во втором.

Кто-то решал подобные задачи?

H
На сайте с 21.08.2004
Offline
122
#1

если подойдет скл запрос:

выбрать номер телефона из таблицы клиентов где ид клиента нет в (выбрать ид_клиента из таблицы заказов где дата заказа>=необходимая дата)

Есть что-то, что мы не знаем, но узнать это мы не можем.
Lazy Badger
На сайте с 14.06.2017
Offline
231
#2

А в чем, собственно, вопрос? "Кто-то", конечно, решал. Но ты, челик, даже вопрос не можешь сформулировать нормально и полно, чтобы отвечающий не гадал "что это может быть"

"База" это что за сущность? Excel-табличка, текстовый файл, "нечто" в закрытом инструменте, к данным которого нет доступа иначе, чем средствами этого инструмента, просто сырые данные в SQL-базе (и вопросы - Какой? Какой версии? Структура БД?)

Делов-то - сесть и написать код, зная все детали

Производство жести методом непрерывного отжига
dotern
На сайте с 21.09.2016
Offline
123
#3

LazyBadger, Я где-то писал, что это БАЗА ДАННЫХ? Зачем придираться? Просто есть номера в столбик с одного списка и такой же столбик с другого списка, их нужно сравнить и удалить повторяющиеся номера. Хотите, это Excel или Word или любая другая программа, не суть.

Написал всё доступно, просто не нужно додумывать. Еще раз: есть два списка номеров в столбик, в этих списках некоторые номера повторяются, номера которые есть одновременно во втором списке и в первом, должны быть удалены с первого списка. Вообще просто. Только с помощью чего это делается?

Пример:

Список №1

+790000001

+790000002

+790000003

+790000004

+790000005

Список №2

+790000004

+790000005

+790000006

+790000007

+790000008

По этому примеру из первого списка должны быть удалены номера, заканчивающиеся на "4" и "5", поскольку они есть во втором списке.

DV
На сайте с 01.05.2010
Offline
644
#4

Ну решать, допустим, решали.

Можно разные инструменты использовать, зависит от ваших умений.

Я делал много чего похожего на PHP, AutoIT, AWK, SQL.

Полагаю, что Python и Perl будут великолепны.

А может, и гуру Excel покажут класс.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Joker-jar
На сайте с 26.08.2010
Offline
154
#5

Для подобных задач как раз и внедряют СУБД, чтобы не ковыряться в "столбиках"

hrach:
если подойдет скл запрос:
выбрать номер телефона из таблицы клиентов где ид клиента нет в (выбрать ид_клиента из таблицы заказов где дата заказа>=необходимая дата)

Примерно так:

SELECT phone, MAX(order_date) AS last_order_date FROM orders GROUP BY phone HAVING last_order_date < NOW() - INTERVAL 180 DAY;
Lazy Badger
На сайте с 14.06.2017
Offline
231
#6
Joker-jar:
Примерно так

Коллега... готовый запрос это, конечно, хорошо, но вы таки подписались теперь разжевывать отъявленному гуманитарию ТС

* "Что это"

* "Как это применить"

* "Как зделать базу"

* "Как в базу залить данные"

чтобы в конце концов все закончилось "зделайти мне плес а то я сам не спровляюс. Калонки я дам"

PS: за чистый SQL-92 в решении - спасибо от меня отдельно, а то влет такая хня в голову лезла с nested sql, что я постарался ее забыть

H
На сайте с 21.08.2004
Offline
122
#7
DenisVS:

Excel класс.

можно заморочить функцию ВПР (VLOOKUP)

Lazy Badger
На сайте с 14.06.2017
Offline
231
#8
hrach:
можно заморочить функцию ВПР (VLOOKUP)

Козырни тогда уж готовым и полным решением, как Джокер (ну если не лениво) - чисто для саморазвития интересующимся. Мне вот (эксел-нубасу RLLY) казалось, что такое, как хочет ТС, там неподъемно по жизни

АС
На сайте с 05.10.2016
Offline
38
#9
dotern:
Только с помощью чего это делается?

Денег, которые платятся тем, кто умеет это делать.

H
На сайте с 21.08.2004
Offline
122
#10
LazyBadger:
Козырни тогда уж готовым и полным решением, как Джокер (ну если не лениво) - чисто для саморазвития интересующимся. Мне вот (эксел-нубасу RLLY) казалось, что такое, как хочет ТС, там неподъемно по жизни

козырять тут нечем:) я такое тупо бы загнал в таблицу и выбрал:) а на самом деле сильно подозреваю, что номера явно взяты из db.

я проморгал пример ТС-а

ТС самый простой рецепт для excel-я (поиск дубликатов и прочее):

1) вставляем все в один столбец подряд все номера (и список 1 и список 2)

2) условное форматирование\правила выделения ячеек\повторяющиеся значения.

3) сортировка и фильтр\настраиваемая сортировка\сортировка цвет ячейки+сверху

все цветные (повторы) пойдут "наверх" и можно уже руками убрать.

либо используем сводные таблицы

П.С. скорость обработки не замерял:)

png exc.png
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий