Конструктор отчетов. Отчёт

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (138)

просмотр истории страницы
*Пример 1.*    *Список всех доступных телефонов абонентов в формате (порядковый номер, логин абонента, номер телефона)*

{code} {panel}
select id, login, SMS from users where DELETED=0 and sms is not null
{code} {panel}

*Пример 2.*    *Список ФИО абонентов и их баланс на текущий момент*

{code} {panel}
select identify as "FIO", (DEBIT + OSTATOK - CREDIT)/10000000000.00 as "BALANCE" from users
  where id<100000 and deleted=0 and end_user=1
{code} {panel}

*Пример 3.&nbsp;&nbsp;&nbsp; Список всех доступных телефонов абонентов, у которых баланс меньше либо равен нулю.*

{code} {panel}
select SMS from users where (DEBIT + OSTATOK - CREDIT)<=0 and DELETED=0 and SMS is not null
{code} {panel}

*Пример 4.*&nbsp;&nbsp;&nbsp; *Список всех доступных МАС-адресов абонентов, использующих услугу IPTV с известным id.*

{code} {panel}
select mac from users
join users_usluga on users_usluga.user_id = users.id
where users_usluga.usluga_id = <id услуги>
and users.mac is not null and users.mac \!= ''
{code} {panel}

*Пример отчетов по VOIP.*
where USER_ID is not null and extract(month from E_TIME) = extract(month from current_timestamp) and extract(year from E_TIME) = extract(year from current_timestamp)
order by E_TIME desc
{code} {panel}
{code:lang=sql|title=Журнал неопределенных звонков за текущий месяц}select SRC as "Номер абонента",
DST as "Направление звонка",
and extract(year from E_TIME) = extract(year from current_timestamp)
order by E_TIME desc
{code} {panel}
{code:lang=sql|title=VOIP Абоненты со статусом}select U.IDENTIFY as "Наименование",
UU.SIP_ID as "Номер",
where UU.SYSTEM_TYPE = 5
order by U.ID
{code} {panel}

*Пример 5. Список ФИО и Адрес всех абонентов. у которых в качестве nas_ip указан адрес 172.16.1.177*:
{code} {panel}
select u.identify as "FIO", av.ATTRIBUTE_VALUE as "Address" from users u
left outer join attribute_values av on av.user_id=u.id
left outer join (users_radiusauth ur on ur.user_id=u.id and av.attribute_id=3)
where uf_ip2string(ur.nas_ip_address)='172.16.1.177'
{code} {panel}

*Пример 6.* *Список{*}*&nbsp;всех абонентов в формате (id, должность, тариф, ФИО, дата внесения) за&nbsp;*{*}период с 2012-11-01 до 2012-11-30 )*

{code} {panel}
select u.id, av.attribute_value, tp.plan_name, u.identify, u.create_date from users
u left outer join attribute_values av on av.user_id=u.id and av.ATTRIBUTE_ID=19
left outer join tarif_plan tp on tp.plan_id=u.TARIFF_ID_CACHE
 where (u.create_date between '2012-11-01' and '2012-11-30')
{code} {panel}

*Пример 7.* *Список{*}*&nbsp;абонентов, созданных за* *заданный период&nbsp; в формате (*{*}id, должность, тариф, ФИО, дата создания)&nbsp;* :
{code} {panel}
select u.id, av.attribute_value from
users u left outer join (attribute_values av on av.user_id=u.id and av.ATTRIBUTE_ID=19)
where  (u.create_date between '2012-11-01' and '2012-11-30')
{code} {panel}

*Пример 8.&nbsp;*&nbsp;*Список, соответствующих пользователям, кодов 1С из биллинга.*
from USERS U
where U.END_USER = 1
{code} {panel}

*Пример 9.&nbsp;Список расхода абонентов за заданный период с 01.11.2012 по 25.11.2012 в формате{*}*&nbsp;(id, финансовый договор, ФИО, расход)* {color:#ff0000}(Для закрытого периода){color}
{code} {panel}
select U.ID,U.CONTRACT_NUMBER,U.IDENTIFY,sum(FO.OP_SUMMA)/10000000000.00 from
USERS U left join FINANCE_OPERATIONS FO on U.ID = FO.USER_ID
and (FO.OP_DATE between '2012-11-01' and '2012-11-30')
group by U.ID, U.CONTRACT_NUMBER, U.IDENTIFY
{code} {panel}

*Пример 10.&nbsp;Список расхода у не удаленных абонентов за заданный период с 2013-03-01 по 2013-03-31, у которых был трафик в формате {*}*&nbsp;(id, финансовый договор, ФИО, расход)* {color:#ff0000}(Для закрытого периода){color}
{code} {panel}
select distinct U.ID,
U.CONTRACT_NUMBER,
exists(select first 1 1 from SESSIONS where ID = U.ID) and U.deleted=0
group by U.ID, U.CONTRACT_NUMBER, U.IDENTIFY
{code} {panel}

*Пример 11.&nbsp;Список расхода абонентов за текущий период в формате (id, финансовый договор, ФИО, расход)*
{code} {panel}
select id, contract_number, identify, credit/10000000000.00 from users
where end_user=1 and id<100000
{code} {panel}

*Пример 12.*&nbsp; *Список пользователей, подключенных за последний месяц&nbsp;(первый запрос) (период с 2011-11-20 до 2011-12-20 ) и их количества (второй запрос).:*
{code} {panel}
SELECT id, identify, login, create_date FROM users
WHERE create_date>'2011-11-20'
AND end_user=1 AND create_date<'2011-12-20'
{code} {panel}
{code} {panel}
SELECT COUNT(id) AS usercount FROM users
WHERE create_date>'2011-11-20'
AND end_user=1
AND create_date<'2011-12-20'
{code} {panel}
Список с выводом адреса
{code} {panel}
select U.ID,
U.IDENTIFY,
left join ATTRIBUTE_VALUES AV on AV.USER_ID = U.ID and AV.ATTRIBUTE_ID = 3
where CREATE_DATE > '2013-05-20' and END_USER = 1 and CREATE_DATE < '2013-06-20'
{code} {panel}

*Пример 13.*&nbsp;&nbsp;*Перевод пользователей из подсетей 10.20.0.0/16...10.25.0.0/16 на Ideco AS с адресом 172.16.1.15*
{code} {panel}
update users set nas_ip_lock=1, nas_ip=uf_string2ip('172.16.1.5') where uf_ip2string(ip) like '10.20.%' or uf_ip2string(host_ip) like '10.20.%'
update users set nas_ip_lock=1, nas_ip=uf_string2ip('172.16.1.5') where uf_ip2string(ip) like '10.21.%' or uf_ip2string(host_ip) like '10.21.%'
update users set nas_ip_lock=1, nas_ip=uf_string2ip('172.16.1.5') where uf_ip2string(ip) like '10.24.%' or uf_ip2string(host_ip) like '10.24.%'
update users set nas_ip_lock=1, nas_ip=uf_string2ip('172.16.1.5') where uf_ip2string(ip) like '10.25.%' or uf_ip2string(host_ip) like '10.25.%'
{code} {panel}

*Пример 14.*&nbsp; *Список абонентов с рекомендуемой суммой к оплате*
{code} {panel}
select user_id, sum(OP_SUMMA/10000000000) from finaions
where op_date>(current_timestamp-120) and op_type=2 group by user_id
{code} {panel}

*Пример 15.*&nbsp; *Список абонентов из заданной подсети 192.168.0.0/16*
{code} {panel}
select id, login from users where uf_ip2string(ip) like '192.168.%'
{code} {panel}

*Пример 16.*&nbsp; *Список&nbsp;одинаковых ИНН*
{code} {panel}
select count(attribute_value), attribute_value from attribute_values where attribute_id=4
group by attribute_value having count(attribute_value)>1
{code} {panel}

*Пример 17.* &nbsp;*Список должников (Тариф, ФИО, Телефон, Адрес, Баланс)*
{code} {panel}
select (select tp.plan_name from tarif_plan tp where tp.plan_id=users.TARIFF_ID_CACHE) as "TARIF",
        USERS.IDENTIFY as "FIO",
        (DEBIT + OSTATOK - CREDIT)/(select CONST_VALUE from VPN_CONST where CONST_ID = 1) as "BALANS"
from USERS where OVER_LIMIT_DATE is not null 
{code} {panel}

*Пример 18.*&nbsp;&nbsp;*Всех пользователей подсети 10.1.0.0/16 перевести на NAS 172.0.1.1, прикрепив к нему, установить авторизацию по радиус и поменять SNAT адрес на 192.168.5.0.*
{code} {panel}
sqlexec "UPDATE users
set 
WHERE
  uf_ip2string(ip) like '10.1.%'"
{code} {panel}

*Пример 19.* *Список номинала всех активированных карт за выбранный период*
{code} {panel}
select
(card_series.card_value/10000000000) as NOMINAL  ,
and cards.date_used < '2013-01-01 00:00:00'
and cards.date_used is not null
{code} {panel}

*Пример 20.* *Список итоговой суммы все{*}{color:#333333}{*}х активированных карт за{*}{color} *выбранный период*
{code} {panel}
select
SUM(card_series.card_value)/10000000000 as ALL_PERIOD_SUM
and cards.date_used < '2013-01-01 00:00:00'
and cards.date_used is not null
{code} {panel}

*Пример 21.*{*}Список (Ф.И.О. , IP, NAS, баланс) с сортировкой фамилий по алфавиту*


{code}select  {panel}select 
identify as "FIO",
uf_ip2string(ip) as "IP",
uf_ip2string(nas_ip) as "NAS",
(DEBIT + OSTATOK - CREDIT)/10000000000.00 as "BALANS" 
from users where deleted=0 and end_user=1 order by identify{code} identify{panel}

*Пример 22.*{*}Список (*{*}Ф.И.О. , IP, NAS, баланс) с сортировкой фамилий по ip*

{code}select  {panel}select 
identify as "FIO",
uf_ip2string(ip) as "IP",
uf_ip2string(nas_ip) as "NAS",
(DEBIT + OSTATOK - CREDIT)/10000000000.00 as "BALANS" 
from users where deleted=0 and end_user=1 order by IP{code} IP{panel}

*Пример 23.*&nbsp;*Список (*{*}Ф.И.О. , Адрес, телефон для смс) с сортировкой фамилий по алфавиту*

{code}select  {panel}select 
u.identify, 
(select ATTRIBUTE_VALUES.ATTRIBUTE_VALUE from attribute_values where ATTRIBUTE_VALUES.USER_ID = U.ID and ATTRIBUTE_VALUES.ATTRIBUTE_ID = 3) as "Address",
u.sms 
from users u where u.deleted=0 and u.end_user=1 order by u.identify{code} u.identify{panel}

*Пример 24.*&nbsp;*Список (*{*}Номер договора, Ф.И.О. , Баланс, Адрес, Тариф )*


{code}select {panel}select
u.contract_number,
u.identify,
(select ATTRIBUTE_VALUES.ATTRIBUTE_VALUE from attribute_values where ATTRIBUTE_VALUES.USER_ID = U.ID and ATTRIBUTE_VALUES.ATTRIBUTE_ID = 3) as "Address",
tp.plan_name from users u left outer join tarif_plan tp on tp.plan_id=u.TARIFF_ID_CACHE
{code} {panel}

*Пример 25.*&nbsp;*Список ФИО абонентов, у которых запланирован переход в следующем месяце на новый тариф с указанием тарифа и сортировкой по Ф.И.О*

{code} {panel}
select u.identify,tp.plan_name from users u
left join tarif_plan tp on u.plan_next_id=tp.plan_id
where u.plan_next_id is not null and u.plan_next_date>current_timestamp
order by u.identify
{code} {panel}

*Пример 26.*&nbsp;*Список Ф.И.О. абонентов, у которых взят Отложенный платеж и дата его окончания с сортировкой по Ф.И.О.*

{code} {panel}
select u.identify,u.promise_date_end from users u
where u.promise_pay is not null and u.promise_date_end>current_timestamp
order by u.identify
{code} {panel}


*Пример 27.*&nbsp;*Список оплат через платежные системы (id, номер договора, Ф.И.О. абонента и внесенная сумма за период с 2013.01.01 с группировкой по группам)*
{code} {panel}
select U.ID,
U.CONTRACT_NUMBER,
where PL.MSG_OUT = 'ACCEPTED' and PL.OPERATOR_DATE_IN >= '2013.01.01'
group by U.ID, U.CONTRACT_NUMBER, U.IDENTIFY
{code} {panel}

*Пример 28.*&nbsp;*Список оплат через платежные системы по группам без учета web-интерфейса кассира (id, название группы и внесенная сумма за период с 2013.04.15 до 2013.04.17)*
{code} {panel}
select U.PARID,
GU.IDENTIFY,
where PL.MSG_OUT = 'ACCEPTED' and (PL.OPERATOR_DATE_IN between '2013-04-15' and '2013-04-17') and PL.PAY_OPERATOR <> 'WEB-cash'
group by U.PARID, GU.IDENTIFY
{code} {panel}

*Пример 29.*&nbsp;*Список оплат через платежные системы по группам с учетом web-интерфейса кассира (id, название группы и внесенная сумма за период с 2013.04.15 до 2013.04.17)*
{code} {panel}
select U.PARID,
GU.IDENTIFY,
where PL.MSG_OUT = 'ACCEPTED' and (PL.OPERATOR_DATE_IN between '2013-04-15' and '2013-04-17')
group by U.PARID, GU.IDENTIFY
{code} {panel}

*Пример 30.*&nbsp;*Список должников (ФИО, дата последнего платежа, Баланс, Тариф{*}*, Адрес,*{*}Телефон)*

{code} {panel}
select
U.IDENTIFY as "FIO",
left join ATTRIBUTE_VALUES AV2 on U.ID = AV.USER_ID and AV.ATTRIBUTE_ID = 1
where U.OVER_LIMIT_DATE is not null
{code} {panel}

*Пример 31.*&nbsp;*Список оплат через менеджер (ФИО, логин, дата платежа, сумма, Адрес, кто оплатил) за период c 2013.02.17 по 2013.02.18*
{code} {panel}
select U.IDENTIFY AS "FIO",
U.login,
left join USERS U2 on FO.owner_id = U2.ID
where (FO.op_type=2) and (cast(FO.op_date as date) between '2013.02.17' and '2013.02.18')
{code} {panel}

*Пример 32.*&nbsp;*Список оплат через менеджер (ФИО, логин, дата платежа, сумма, Адрес, кто оплатил) за текущий день*
{code} {panel}
select U.IDENTIFY AS "FIO",
U.login,
left join USERS U2 on FO.owner_id = U2.ID
where (FO.op_type=2) and (cast(FO.op_date as date)= current_date) and (FO.owner_id<>u.id)
{code} {panel}

*Пример 33.*&nbsp;*Список оплат через менеджер (ФИО, логин, дата платежа, сумма, Адрес, кто оплатил) за период с 2012-09-20 по 2013-03-17&nbsp;&nbsp;*
{code} {panel}
select U.IDENTIFY AS "FIO",
U.login,
left join USERS U2 on FO.owner_id = U2.ID
where (FO.op_type=2) and (FO.owner_id<>u.id) and (FO.op_date between '2012-09-20' and '2013-03-17')
{code} {panel}

*Пример 34. Список логинов и паролей абонентов*

{code} {panel}
select id, identify, login, gen_pwd AS "password" from users where DELETED=0 and end_user=1
{code} {panel}


*Пример 35. Список пользователей, у которых активированы дополнительные услуги за все время работы (ФИО, название услуги, дата активации)*

{code} {panel}
select USERS.IDENTIFY AS "FIO",
USLUGA.NAME AS "USLUGA",
from USERS, USLUGA, USERS_USLUGA
where USLUGA.ID = USERS_USLUGA.USLUGA_ID and USERS.ID = USERS_USLUGA.USER_ID
{code} {panel}

*Пример 36. Список пользователей, у которых активированы дополнительные услуги за период с 2013.03.01 по 2013.04.01 (id, ФИО, название услуги, дата активации)*

{code} {panel}
select USERS.ID,
USERS.IDENTIFY,
where USERS.ID is not null and
US.CREATE_DATE between '2013.03.01' and '2013.04.01' order by USERS.ID
{code} {panel}

*Пример 37. Список пользователей, у которых активированы дополнительные услуги на данный момент(id, ФИО, название услуги)*
{code} {panel}
select USERS.ID,
USERS.IDENTIFY,
left join USLUGA on US.USLUGA_ID=USLUGA.ID
where USERS.ID is not null and US.activated=1
{code} {panel}

*Пример 38. Отчет по сумме оплат за каждый день, внесенных через менеджер за период с 2013.03.01 по 2013.03.25*
В консоли сервера выполните:
1. Открыть базу для редактирования
{code} {panel}
sqlexec "alter exception ERR 'Error '"
{code} {panel}
2. Добавить в таблицу FINANCE_OPERATIONS поле OP_DATE_DAY
{code} {panel}
sqlexec "ALTER TABLE FINANCE_OPERATIONS ADD OP_DATE_DAY DATE"
{code} {panel}
3. Закрыть базу для редактирования
{code} {panel}
sqlexec "alter exception ERR 'Error'"
{code} {panel}

Отчет строится из двух запросов. Запросы необходимо выполнять последовательно.

запрос 1:
{code} {panel}
update FINANCE_OPERATIONS set op_date_day = op_date
{code} {panel}
запрос 2:
{code} {panel}
select
FO.op_date_day ,
left join USERS U2 on FO.owner_id = U2.ID
where (FO.op_type=2) and (FO.op_date_day between '2013.03.01' and '2013.03.25') group by FO.op_date_day order by FO.op_date_day
{code} {panel}

*Пример 39. Изменить у абонентов тип авторизации с Radius на ip (адрес NAS - 192.168.0.222)*

{code} {panel}
update users set AUTH_TYPE=1, AUTH_TYPE_CACHE=1, NAS_IP_LOCK=1, NAS_IP=uf_string2ip('192.168.0.222') where AUTH_TYPE_CACHE=6
{code} {panel}

*Пример 40. Получить сумму по 2 услугам за период по пользователю услуга 10 и 11*
{code} {panel}
SELECT SUM(session_credit) FROM sessions WHERE (time_in between '2013-03-01' and '2013-04-01') AND id = 2564 AND (ruleset_no = -10 OR ruleset_no = -11)
{code} {panel}

*Пример 41. Список должников с последней оплатой (ФИО,Логин,Договор,Дата последнего платежа,Сумма последнего платежа,Текущий баланс)*
Запрос:

{code} {panel}
select U.identify,U.login,U.contract_number,RPL.OP_DATE,RPL.OP_SUMMA,RPL.BALANCE_BUH from users U
join REP_FINOPER_LAST(2) RPL on RPL.user_id=u.id
{code} {panel}
Предварительно Через [ibexpert|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=3440679] или sqlexec сделать процедуру
{code} {panel}
SET TERM ^ ;
create procedure REP_FINOPER_LAST1 (
/* Existing privileges on this procedure */
GRANT EXECUTE ON PROCEDURE REP_FINOPER_LAST TO SYSDBA;
{code} {panel}

*Пример 42. Список абонентов в формате (Номер, Логин, Тарифный план, ФИО, Остаток на начало периода, Платеж через кассира, Расход, Расход по трафику, Остаток на конец периода) за период с 2013-05-01 по 2013-05-15* {color:#ff0000}{*}Доступен с версии&nbsp;397_359{*}{color}

{code} {panel}
select CR.USER_ID "№",
CR.LOGIN "Логин",
from CLN_REPORTS_USERS_INFO('2013-05-01', '2013-05-15') CR
order by CR.LOGIN
{code} {panel}

*Пример 43. Список абонентов в формате (ID, ФИО, тарифный_план) у которых за период 2013-04-01 - 2013-05-01 был трафик больше 100Кб*

{code} {panel}
select distinct USERS.id, USERS.identify, TARIF_PLAN.plan_name
from SESSIONS
left join TARIF_PLAN on sessions.plan_id = TARIF_PLAN.plan_id
where (SESSIONS.date_in between '2013-04-01' and '2013-05-01') and USERS.id<100000 and SESSIONS.v_in>102400 order by USERS.id
{code} {panel}

*Пример 44. Список должников (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата последней оплаты, Баланс, Статус) сортировка по № договора*
{code} {panel}
select
U.CONTRACT_NUMBER,
left join ATTRIBUTE_VALUES AV on U.ID = AV.USER_ID and AV.ATTRIBUTE_ID = 3
where U.OVER_LIMIT_DATE is not null order by U.CONTRACT_NUMBER
{code} {panel}

*Пример 45. Список абонентов (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата последней оплаты, Баланс, Статус) сортировка по Ф.И.О.*
{code} {panel}
select
U.CONTRACT_NUMBER,
left join ATTRIBUTE_VALUES AV on U.ID = AV.USER_ID and AV.ATTRIBUTE_ID = 3
order by U.IDENTIFY
{code} {panel}

*Пример 46. Список новых абонентов за период 2013-03-01 - 2013-03-30 (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата последней оплаты, Баланс, Статус) сортировка по дате подключения.*
{code} {panel}
select
U.CONTRACT_NUMBER,
left join ATTRIBUTE_VALUES AV on U.ID = AV.USER_ID and AV.ATTRIBUTE_ID = 3
where U.CREATE_DATE between '2013-03-01' and '2013-03-30' order by U.CREATE_DATE
{code} {panel}

*Пример 47. Список удаленных абонентов (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата последней оплаты, Баланс, Статус) сортировка по Ф.И.О.*
{code} {panel}
select
U.CONTRACT_NUMBER,
left join ATTRIBUTE_VALUES AV on U.ID = AV.USER_ID and AV.ATTRIBUTE_ID = 3
where U.DELETED=1 order by U.IDENTIFY
{code} {panel}

*Пример 48. Список отключенных абонентов (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата отключения, Баланс, Статус) сортировка по Ф.И.О.*
{code} {panel}
select
U.CONTRACT_NUMBER,
where U.ENABLED=0 or U.DISABLED_DATE is not null
order by U.IDENTIFY
{code} {panel}
*Пример 49. Список отключенных абонентов, не плативших с 2013.04.01 (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата отключения, Баланс, Статус) сортировка по Ф.И.О.*
{code} {panel}
select
U.CONTRACT_NUMBER,
where (U.ENABLED=0 or U.DISABLED_DATE is not null) and U.DISABLED_DATE<'2013.04.01'
order by U.IDENTIFY
{code} {panel}
*Пример 50. Список суммы должников (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата последней оплаты, Баланс, Статус) сортировка по Ф.И.О.*
{code} {panel}
SELECT
cast(U.CONTRACT_NUMBER as varchar(32)) as "№ договора",
where (U.DEBIT + U.OSTATOK - U.CREDIT) / (select CONST_VALUE from VPN_CONST where CONST_ID = 1) < 0 and u.end_user=1 and u.id<100000 and u.deleted=0
order by 2
{code} {panel}
*Пример 51. Кол-во абонентов на каждом тарифе (Тариф, количество абонентов) сортировка по названию тарифа*
{code} {panel}
select
tp.plan_name as "Тарифный план",
from
tarif_plan tp order by 1
{code} {panel}
*Пример 52. Кол-во абонентов на каждой услуге (Тариф, количество абонентов) сортировка по названию услуги*
{code} {panel}
select
us.name as "Услуга",
(select count(1) from users u where u.id in (select user_id from users_usluga uu where uu.usluga_id=us.id) and u.deleted=0 and u.end_user=1 and u.id<100000) as "Количество абонентоd"
from usluga us order by 1
{code} {panel}
*Пример 53. Сумма внесенных средств за указанный период(№ договора, Ф.И.О, Адрес, телефон, IP, баланс, дата последней операции, кем или чем проведена операция) сортировка по дате последней операции в конце общая сумма всех операций*
{code} {panel}
SELECT
cast(U.CONTRACT_NUMBER as varchar(32)) as "№ договора",
and not descr like '%Обещанный платеж%'
order by 7
{code} {panel}

*Пример 54. Поиск абонента по MAC (52:54:00:BC:AA:45) (при условии что у абонента стоит статическая привязки) в формате id, ФИО, ip*
{code} {panel}
SELECT id, identify, uf_ip2string(ip) from USERS where MAC='52:54:00:BC:AA:45'
{code} {panel}

*Пример 55. Список должников(ФИО, IP)*
Сортировка по ФИО
{code} {panel}
select identify, uf_ip2string(ip) from users where over_limit_date is not null and deleted=0 and id<100000 and end_user=1 order by 1
{code} {panel}
Сортировка по IP
{code} {panel}
select identify, uf_ip2string(ip) from users where over_limit_date is not null and deleted=0 and id<100000 and end_user=1 order by 2
{code} {panel}

*Пример 56. Список сессий по абоненту , пример по абоненту id 245 (id,IP-адрес,Начало сессии, конец сессии) с сортировкой по дате*
Сортировка по ФИО
{code} {panel}
select ID,
UF_IP2STRING(USER_IP) as IP,
where ID = 245 and UF_IP2STRING(USER_IP) <> '0.0.0.0'
order by DATE_IN
{code} {panel}

*Пример 57. Список абонентов, подключенных к NAS с ip 172.16.0.6 в формате id, фио, номер телефона*
{code} {panel}
select UR.user_id as ID,
U.identify as FIO,
where UF_IP2STRING(UR.NAS_IP_ADDRESS)='172.16.0.6'
order by U.identify
{code} {panel}

*Пример 58. Список абонентов, оплативших через платежную систему telepay в формате id, фио, сумма_платежа*
{code} {panel}
select U.login,
U.identify as FIO,
where PL.MSG_OUT='ACCEPTED' and PL.ACT_IN='PAY' and PL.PAY_OPERATOR='TELEPAY'
order by U.identify
{code} {panel}

*Пример 59. Список привязки абонентов к порту коммутатора (ФИО, Имя коммутатора, IP коммутатор, Номер порта, Номер vlan) с группировкой по номеру коммутатора*
{code} {panel}
select
u.identify as FIO,
join switch sw on sw.id=sp.switch_id
order by sp.switch_id
{code} {panel}
*Пример 60. Список абонентов, не плативших в течение 3-х месяцев (№ договора, Ф.И.О, Адрес, Телефон, IP, Тариф, Дата подключения, Дата блокировки по балансу, Баланс, Статус) сортировка по Ф.И.О.*
{code} {panel}
select
U.CONTRACT_NUMBER,
where U.over_limit_date < (current_timestamp -90) and U.end_user=1
order by U.IDENTIFY
{code} {panel}
=====
Отчет