powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как посчитать новые записи?
9 сообщений из 9, страница 1 из 1
Как посчитать новые записи?
    #39894585
mitiok2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
есть база данных, которая состоит из многих полей, но основные : Период (месяц+год) и Номер телефона. Соответсвенно в данную базу попадает вся информация о звонках за определенный Период.
Мне нужно посчитать Количество новых Номеров телефона в каждом периоде. Соответственно, в первом периоде в расчет должны войти все номера телефона из этого Периода, в следующий только те, которых не было в предыдущем Периоде, затем те которых не было в двух предыдущих периодах и т.д.
Подскажите, как это можно реализовать?

Можно на SQL, в форум по Access написал, только потому, что MS Access есть под рукой )
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39894604
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mitiok2002,
За основу возьмите мастер построения запросов - запрос "Записи без подчиненных"
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39894609
Для текущего месяца:
Код: sql
1.
2.
SELECT [Номер телефона] FROM [Таблица] As T1 WHERE [год]=2019 And [месяц]=11 AND
 NOT EXISTS (SELECT * FROM [Таблица] As T2 WHERE (T2.[год]<2019 Or (T2.[год]=2019 And T2.[месяц]<11)) AND T2.[Номер телефона] = T1.[Номер телефона])

ЗЫ. Период (месяц+год) - не лучшее решение.
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39894611
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mitiok2002
...
....Мне нужно посчитать Количество новых Номеров телефона в каждом периоде....
Стесняюсь спросить: каковы эти периоды (начало и конец периода) и какую информацию Вы храните? Хотелось бы увидеть Вашу БД чтоб понять бизнес-логику
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39894616
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mitiok2002,

Период (месяц+год) - как это выглядит ? Это текст, типа "201911" ?

Код: vbnet
1.
2.
3.
4.
select Период, count(*) as [К-во новых]
from
  (select [Номер телефона], min(Период) as Период from [есть база данных] group by [Номер телефона]) t
group by Период
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39894620
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
.... ЗЫ. Период (месяц+год) - не лучшее решение.

Почему бы не хранить №телефона,с которого поступил звонок и его дату(в поле типа дата/время)
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39894692
mitiok2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ух ты, как круто! Я тут некоторое время был вне доступа, а тут мне так много советов надавали! СПАСИБО, ребята, буду пробовать. По результатам отпишусь.
Период - это поле типа дата, Т.е. там хранится 01.10.2019 для Октября, 01.11.2019 для Ноября и т.п.

И пока у меня вся эта БД лежит в Excel ). Сейчас загружу в Access и потренируюсь.
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39895112
mitiok2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, во первых спасибо огромное за ответы. Вариант от уважаемого court, модифицированный под мою БД, отлично работает:

Код: sql
1.
2.
3.
4.
select ReportMonth, count(*) as ClientAdd
from
  (select ClientNum, min(ReportMonth) as ReportMonth from UserData group by ClientNum) t
group by ReportMonth



Но, как всегда теперь хочется улучшить. Итак, описываю задачу по новому и с более точными исходными данными.
Выгрузил таблицу Excel в SQLite-базу, так оказалось удобнее ). Таблица состоит из следующих полей:

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE UserData (
    ReportMonth TEXT,                // Отчетный месяц, формат 2019-03-01
    Filial TEXT,                             // Филиал, в котором обслуживается клиент 
    ClientNum TEXT,                    // Номер телефона клиента
    AccountPaid REAL)                 // Оплата по клиенту



В эту таблицу попадают все операции за месяц по клиентам с расчетом оплаты (AccountPaid). Один клиент = одна запись в месяц.
Мне нужно узнать сколько клиентов за месяц Прибавилось, сколько клиентов за месяц Убавилось. ClientNum - уникальный идентификатор клиента (номер телефона).
Решение от уважаемого court, отлично работает и определяет сколько новых ClientNum появилось в этом месяце. А как определить сколько клиентов ушло? Сколько клиентов, которые пользовались услугой в предыдущих месяцах, ушли?

И еще, было бы совсем идеально, если бы итоговые данные сортировались по ReportMonth и Filial, чтобы можно было посмотреть сколько клиентов пришло/ушло в каждом Filial поотдельности.

Надеюсь, что понятно объяснил ).
...
Рейтинг: 0 / 0
Как посчитать новые записи?
    #39895131
mitiok2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, во первых спасибо огромное за ответы. Вариант от уважаемого court, модифицированный под мою БД, отлично работает:

Код: sql
1.
2.
3.
4.
select ReportMonth, count(*) as ClientAdd
from
  (select ClientNum, min(ReportMonth) as ReportMonth from UserData group by ClientNum) t
group by ReportMonth




Но, как всегда теперь хочется улучшить. Итак, описываю задачу по новому и с более точными исходными данными.
Выгрузил таблицу Excel в SQLite-базу, так оказалось удобнее ). Таблица состоит из следующих полей:

Код: sql
1.
2.
3.
4.
5.
CREATE TABLE UserData (
    ReportMonth TEXT,                // Отчетный месяц, формат 2019-03-01
    Filial TEXT,                             // Филиал, в котором обслуживается клиент 
    ClientNum TEXT,                    // Номер телефона клиента
    AccountPaid REAL)                 // Оплата по клиенту




В эту таблицу попадают все операции за месяц по клиентам с расчетом оплаты (AccountPaid). Один клиент = одна запись в месяц.
Мне нужно узнать сколько клиентов за месяц Прибавилось, сколько клиентов за месяц Убавилось. ClientNum - уникальный идентификатор клиента (номер телефона).
Решение от уважаемого court, отлично работает и определяет сколько новых ClientNum появилось в этом месяце. А как определить сколько клиентов ушло? Сколько клиентов, которые пользовались услугой в предыдущих месяцах, ушли?

И еще, было бы совсем идеально, если бы итоговые данные сортировались по ReportMonth и Filial, чтобы можно было посмотреть сколько клиентов пришло/ушло в каждом Filial поотдельности.

Надеюсь, что понятно объяснил ).

P.S.: Приношу извинения за повторную публикацию, похоже форум сбоит.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как посчитать новые записи?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]