Обмен отчётами
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Обмен отчётами
Данный раздел был создан для обмета произвольными отчётами между абонентами
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
Начисление и задолженность за период
Код: Выделить всё
Начисление и задолженность за период
=============================
Начисление и задолженность за период
=============================
(SELECT
pi.uid,
pi.fio,
pi.pasport_num,
'pi._bank_account',
f.dsc,
f.sum,
f.date
FROM users u
LEFT JOIN users_pi pi ON (u.uid=pi.uid)
LEFT JOIN fees f ON (f.uid=pi.uid)
WHERE f.date>'%DATE_FROM%' AND f.date<'%DATE_TO%' AND u.gid='%GID%'
)
UNION
(SELECT
pi2.uid,
pi2.fio,
pi2.pasport_num,
'pi._bank_account',
'!!! Debet',
f2.last_deposit,
f2.date
FROM users u2
LEFT JOIN users_pi pi2 ON (u2.uid=pi2.uid)
LEFT JOIN fees f2 ON (f2.uid=pi2.uid)
WHERE f2.date>'%DATE_FROM%' AND f2.date<'%DATE_TO%' AND f2.last_deposit<0 AND u2.gid='%GID%'
GROUP BY u2.uid
ORDER BY 1
)
ORDER BY 1
=============================
=============================
=============================
Re: Обмен отчётами
Если я правильно понял, это тема чтобы выкладывать какие кто выборки из базы делает?
Ну вот я таким образом считаю количество живых абонентов (исключая неплательщиков и халявщиков и т.п., т.е. только плательщики):
Ну вот я таким образом считаю количество живых абонентов (исключая неплательщиков и халявщиков и т.п., т.е. только плательщики):
Код: Выделить всё
select count(*) from users,dv_main,tarif_plans,bills
where bills.uid=dv_main.uid and bills.uid=users.uid and dv_main.tp_id = tarif_plans.id # связываю таблицы
and ( bills.deposit + users.credit ) > 0 # чтобы на счету кредит+депозит был больше 0
and ( tarif_plans.month_fee > 0 or tarif_plans.day_fee > 0 ); # чтобы тариф был не бесплатный
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
просьба выкладывать запросы в формате Rwizard для удобства импорта в модульMakioro писал(а):Если я правильно понял, это тема чтобы выкладывать какие кто выборки из базы делает?
Ну вот я таким образом считаю количество живых абонентов (исключая неплательщиков и халявщиков и т.п., т.е. только плательщики):Код: Выделить всё
select count(*) from users,dv_main,tarif_plans,bills where bills.uid=dv_main.uid and bills.uid=users.uid and dv_main.tp_id = tarif_plans.id # связываю таблицы and ( bills.deposit + users.credit ) > 0 # чтобы на счету кредит+депозит был больше 0 and ( tarif_plans.month_fee > 0 or tarif_plans.day_fee > 0 ); # чтобы тариф был не бесплатный
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
Депозита больше чем на 2 месяца
Код: Выделить всё
Депозита больше чем на 2 месяца
=============================
Отображаются абоненты у которых депозита больше чем на 2 месяца работы
=============================
SELECT u.id AS login, pi.fio,
if(company.id IS NULL, b.deposit, cb.deposit) AS deposit,
tp.name AS tarif_plan_name,
tp.month_fee,
u.uid
FROM users u
LEFT JOIN users_pi pi ON (pi.uid=u.uid)
LEFT JOIN companies company ON (u.company_id=company.id)
LEFT JOIN bills b ON (u.bill_id = b.id)
LEFT JOIN bills cb ON (company.bill_id=cb.id)
LEFT JOIN dv_main dv ON (dv.uid=u.uid)
LEFT JOIN tarif_plans tp ON (dv.tp_id=tp.id)
WHERE tp.month_fee > 0
AND if(company.id IS NULL, b.deposit, cb.deposit) > tp.month_fee * 2
=============================
=============================
=============================
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
TOP 100 "Качальщиков"
- Рейтинг "качальщиков".
- Выбор периода.
- Выбор минимального трафика для попадания в рейтинг
- Рейтинг "качальщиков".
- Выбор периода.
- Выбор минимального трафика для попадания в рейтинг
Код: Выделить всё
TOP 100 Качальщиков
=============================
Рейтинг качальщиков. Выбор периода. Выбор минимального трафика для попадания в рейтинг
=============================
SELECT u.id AS login, pi.fio, sum(l.recv+l.sent) AS total_traffic, sum(l.recv) AS recv_traffic, sum(l.sent) AS sent_traffic, l.uid
FROM dv_log l
LEFT JOIN users u ON (l.uid=u.uid)
LEFT JOIN users_pi pi ON (l.uid=pi.uid)
WHERE DATE_FORMAT(l.start, '%Y-%m-%d')>='%DATE_FROM%' AND DATE_FORMAT(l.start, '%Y-%m-%d')<='%DATE_TO%'
GROUP BY l.uid
HAVING sum(l.sent+l.recv)>'%PARAMETER%'
ORDER BY 3 DESC
LIMIT 100
=============================
=============================
login:$_LOGIN:
fio:$_FIO:
total_traffic:$_TOTAL::int2byte
recv_traffic:$_SENT::int2byte
sent_traffic:$_RECV::int2byte
=============================
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
Отчёт развития
- Зарегистрированные абоненты
- удалённые абоненты
- отключённые абоненты
- отчёт по группам
- Зарегистрированные абоненты
- удалённые абоненты
- отключённые абоненты
- отчёт по группам
Код: Выделить всё
Отчёт развития
=============================
- Зарегистрированные абоненты
- удалённые абоненты
- отключённые абоненты
- отчёт по группам
=============================
SELECT DATE_FORMAT(datetime, '%Y-%m') AS month,
sum(if(action_type = 7, 1, 0)) AS registred,
sum(if(action_type = 12, 1, 0)) AS deleted,
sum(if(action_type = 9, 1, 0))-sum(if(action_type = 8, 1, 0)) AS disabled,
sum(if(action_type = 8, 1, 0)) AS enabled
FROM admin_actions aa
LEFT JOIN users u ON (u.uid=aa.uid)
WHERE aa.module='' AND u.gid='%GID%' AND
DATE_FORMAT(datetime, '%Y-%m-%d')>='%DATE_FROM%' AND DATE_FORMAT(datetime, '%Y-%m-%d')<='%DATE_TO%'
GROUP BY 1
ORDER BY 1
=============================
=============================
month:$_MONTH:X_TEXT
registred:$_REGISTRATION:LINE
deleted:$_DELETED:LINE
disabled:$_DISABLE:LINE
enabled:$_ACTIVATE:LINE
=============================
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
Активность тех поддержки
Код: Выделить всё
Активность поддержки
=============================
Help desk activity
=============================
SELECT DATE_FORMAT(date, '%Y-%m-%d') AS date,
sum(if(state=0, 1, 0)) AS open,
sum(if(state=1, 1, 0)) AS closed_unsuccessful,
sum(if(state=2, 1, 0)) AS closed_successful,
sum(if(state>2, 1, 0)) AS other
FROM msgs_messages
WHERE DATE_FORMAT(date, '%Y-%m-%d')>='%DATE_FROM%' AND DATE_FORMAT(date, '%Y-%m-%d')<='%DATE_TO%'
GROUP BY 1
=============================
=============================
date:DATE:X_TEXT
open:open:COLUMN
closed_unsuccessful:unsuccessfu:COLUMN:
closed_successful:successful:COLUMN:
other:other:COLUMN:
=============================
Распределение продолжительности, количества отправленных и полученных даных по времени в логе DV
Код: Выделить всё
DV Log Визуализация
=============================
Распределение продолжительности, количества отправленных и полученных даных по времени в логе DV .
=============================
SELECT
DATE_FORMAT(start, '%Y-%m-%d') AS date,
duration AS Duration,
recv AS Received,
sent AS Sent
FROM dv_log
WHERE start BETWEEN '%DATE_FROM%' and '%DATE_TO%'
GROUP BY 1
=============================
=============================
date:DATE:X_TEXT
Received:Received:scatter:
Sent:Sent:scatter:
Duration:Duration:scatter:
=============================
Re: Обмен отчётами
~AsmodeuS~ писал(а):Активность тех поддержки
Код: Выделить всё
Активность поддержки ============================= Help desk activity ============================= SELECT DATE_FORMAT(date, '%Y-%m-%d') AS date, sum(if(state=0, 1, 0)) AS open, sum(if(state=1, 1, 0)) AS closed_unsuccessful, sum(if(state=2, 1, 0)) AS closed_successful, sum(if(state>2, 1, 0)) AS other FROM msgs_messages WHERE DATE_FORMAT(date, '%Y-%m-%d')>='%DATE_FROM%' AND DATE_FORMAT(date, '%Y-%m-%d')<='%DATE_TO%' GROUP BY 1 ============================= ============================= date:DATE:X_TEXT open:open:COLUMN closed_unsuccessful:unsuccessfu:COLUMN: closed_successful:successful:COLUMN: other:other:COLUMN: =============================
Код: Выделить всё
date:$_DATE:X_TEXT
open:$_OPEN:COLUMN
closed_unsuccessful:$_CLOSED_UNSUCCESSFUL:COLUMN:
closed_successful:$_CLOSED_SUCCESSFUL:COLUMN:
other:$_OTHER:COLUMN:
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
Отчет по абонентам сколько дней в месяце они работали (IPN)
Код: Выделить всё
Рабочие не рабочии дни
=============================
Отчет по абонентам сколько дней в месяце они работали
=============================
SELECT pi.fio,
pi.contract_id,
COUNT(DISTINCT(date_format(start, '%Y-%m-%d'))) AS work_days,
DAY(LAST_DAY(l.start)) - COUNT(DISTINCT(date_format(start, '%Y-%m-%d'))) AS not_working_days
FROM ipn_log l
INNER JOIN users_pi pi on(pi.uid=l.uid)
WHERE DATE_FORMAT(l.start, '%Y-%m-%d')>='%DATE_FROM%' AND DATE_FORMAT(l.start, '%Y-%m-%d')<='%DATE_TO%'
GROUP BY l.uid
=============================
=============================
fio:ФИО
contract_id:Договор
work_days:Рабочие дни
not_working_days:Не рабочие
=============================
Re: Обмен отчётами
Всем привет! Произошла такая ситуация, что по состоянию на 1-е число сняло средства только у тех людей, у которых на счету было хотя бы 1 грн, а в тех у кого был 0 средства не сняло (так и должно быть, но должно перевести в статус "недостаточно средств ") и не перевело в" недостаточно средств "! Как сделать выборку тех у кого за 12-й месяц не сняло деньги?
Re: Обмен отчётами
Здравствуйте, а где можна посмотреть, как построены стандартные отчеты: по оплатам или снятию средств. Или где-нибудь есть информация как использовать поле Запрос: Всего в мастере отчетов?
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Обмен отчётами
gungalad писал(а):Здравствуйте, а где можна посмотреть, как построены стандартные отчеты: по оплатам или снятию средств. Или где-нибудь есть информация как использовать поле Запрос: Всего в мастере отчетов?
http://abills.net.ua/wiki/doku.php/abil ... ard_config
Re: Обмен отчётами
Авторство принадлежит Makioro, я лишь привел к правильному виду
Makioro писал
Makioro писал
Ну вот я таким образом считаю количество живых абонентов (исключая неплательщиков и халявщиков и т.п., т.е. только плательщики):
Код: Выделить всё
Количество активных абонентов
=============================
количество живых абонентов (исключая неплательщиков и халявщиков и т.п., т.е. только плательщики):
=============================
select count(*) from users,dv_main,tarif_plans,bills
where bills.uid=dv_main.uid and bills.uid=users.uid and dv_main.tp_id = tarif_plans.id
and ( bills.deposit + users.credit ) > 0
and ( tarif_plans.month_fee > 0 or tarif_plans.day_fee > 0 )
=============================
=============================
count(*):Total
=============================