Обмен отчётами

Модуль формирования произвольных отчётов и обмен отчётами
phantom
Сообщения: 2
Зарегистрирован: Пн июн 05, 2017 4:15 pm

Re: Обмен отчётами

Сообщение phantom » Пн июн 05, 2017 4:37 pm

Отчет по использованным системой статическим ip-адресам присвоенным абонентам (DV)

Код: Выделить всё

Используемые системой статические IP адреса 
=============================
Присвоенные абонентам и  используемые системой статические IP адреса 
=============================
SELECT u.id AS login, pi.fio, INET_NTOA(dv.ip) AS ip_adress from users u  
INNER JOIN users_pi pi ON (pi.uid=u.uid)
INNER JOIN dv_main dv ON (u.uid=dv.uid)  
ORDER BY `login`
ASC LIMIT 10000
=============================

=============================
login:$_LOGIN:
fio:$_FIO:
ip_adress:ip_adress:
=============================

~AsmodeuS~
Site Admin
Сообщения: 5576
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Обмен отчётами

Сообщение ~AsmodeuS~ » Вс дек 24, 2017 1:32 pm

Последнее подключение

Код: Выделить всё

Последние подключения
=============================

=============================
SELECT 
  MAX(start) AS last_session, dv_log.uid, u.id as login
FROM dv_log
INNER JOIN users u ON (u.uid=dv_log.uid) 
GROUP BY uid
HAVING last_session > '%PARAMETER%'
ORDER BY 1
=============================

=============================

=============================

n.borisenkov
Сообщения: 2
Зарегистрирован: Пт ноя 17, 2017 8:52 pm

Re: Обмен отчётами

Сообщение n.borisenkov » Чт фев 08, 2018 8:19 am

Код: Выделить всё

Клиенты со статусом "Отключено" и привязанным IP-адресом
=============================
(только для модуля Dv)
=============================
SELECT u.uid,u.id,p.fio,inet_ntoa(d.ip), d.tp_id,t.name,
(SELECT MAX(datetime) FROM admin_actions WHERE uid = u.uid AND module = 'Dv' AND action_type = 4) status_change
FROM dv_main AS d
LEFT JOIN tarif_plans AS t ON t.id=d.tp_id
LEFT JOIN users       AS u ON u.uid=d.uid
LEFT JOIN users_pi    AS p ON p.uid=d.uid
WHERE d.disable = '1' AND
inet_ntoa(d.ip) != '0.0.0.0'
ORDER BY status_change desc;
=============================

=============================

=============================

Код: Выделить всё

Клиенты, которые подключились и не пользуются услугами
=============================
Клиенты, которые были подключены в течение последних трёх месяцев, но сейчас не работают, и количество дней, которые они не работают.
(только для модуля Dv)
=============================
SELECT
    u.uid
    , u.id login
    , pi.fio
    , pi.contract_id
    , CASE
        WHEN dv.disable = 0 THEN 'Активный' 
        WHEN dv.disable = 1 THEN 'Отключен'
        WHEN dv.disable = 2 THEN 'Не активизирован'
        WHEN dv.disable = 3 THEN 'Приостановление'
        WHEN dv.disable = 4 THEN 'Откл: Неоплата'
        WHEN dv.disable = 5 THEN 'Маленький депозит'
        ELSE 'Неопределённый'
      END status
    , u.registration
    , DATEDIFF(CURDATE(), IFNULL((SELECT MAX(datetime) FROM admin_actions WHERE uid = u.uid AND module = 'Dv' AND action_type = 4), u.registration)) change_days_ago
FROM
    users u
    LEFT JOIN users_pi pi
        ON u.uid = pi.uid
    LEFT JOIN dv_main dv
        ON dv.uid = u.uid
WHERE
    u.gid IN (10, 150)
    AND u.registration > DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
    AND dv.disable NOT IN (0)
ORDER BY change_days_ago;
=============================

=============================
uid:uid
login:логин
fio:ФИО
contract_id:Договор
status:Статус
change_days_ago:Дней неактивности
=============================

Код: Выделить всё

Неиспользуемые тарифные планы
=============================
Тарифные планы у которых количество пользователей равно 0
(только для модуля Dv)
=============================
SELECT tp.id, tp.name, tp.month_fee, tt.prepaid, tt.in_price, COUNT(dv.tp_id) AS tp_qty
FROM tarif_plans AS tp
LEFT JOIN dv_main AS dv ON dv.tp_id=tp.id
LEFT JOIN trafic_tarifs AS tt ON tp.tp_id=tt.tp_id
WHERE dv.uid IS NULL
GROUP BY tp.id
ORDER BY tp.id
=============================

=============================
id:ID
name: Название
month_fee: Абон. плата
prepaid: Предоплата(Мб)
in_price: Цена за 1Мб
tp_qty: Кол-во пользователей
=============================

n.borisenkov
Сообщения: 2
Зарегистрирован: Пт ноя 17, 2017 8:52 pm

Re: Обмен отчётами

Сообщение n.borisenkov » Пт фев 09, 2018 11:37 am

Код: Выделить всё

Клиенты, у которых было больше 1 месячного списания
=============================
(только для модуля Dv)
=============================
SELECT 
    *
FROM
    (SELECT 
        DATE_FORMAT(date, '%Y-%m') AS mon,
            f.uid,
            u.id,
            pi.fio,
            g.name AS group_name,
            COUNT(*) AS cnt
    FROM
        fees f
    INNER JOIN dv_main     AS dvm ON f.uid = dvm.uid
    INNER JOIN tarif_plans AS tp  ON dvm.tp_id = tp.id
    INNER JOIN users       AS u   ON f.uid = u.uid
    INNER JOIN users_pi    AS pi  ON f.uid = pi.uid
    INNER JOIN groups      AS g   ON u.gid = g.gid
    WHERE
        method IN (1) AND
        dsc LIKE "Internet: %"
    GROUP BY DATE_FORMAT(date, '%Y-%m') , uid
    ORDER BY mon, uid) AS fc
WHERE
    fc.cnt > 1;
=============================

=============================
mon:$_DATE
uid:UID
id:$_LOGIN
fio:$_FIO
group_name:$_GROUP
cnt:$_COUNT
=============================

Ответить