Для создания отчета через конструктор отчетов необходимо:
1. Зайти в АСР менеджере "Отчеты -> Конструктор отчетов"
2. Добавить новый отчет кнопкой "+" справа ("-" удаляет выбранный отчет)
3. Задать название отчета и текст запроса, который вы можете уточнить у тех.поддержки (должен начинаться со слова "select").
4. Также есть возможность настроить привилегии доступа для разных типов администраторов.
Для вывода отчета достаточно выбрать нужный и нажать кнопку "Запросить".
5. Начиная с версии 3.9.6 484 есть возможность выгрузить полученный отчет в Excel. Работает только под системой Windows!
Выгрузка может не работать, если имя отчета длиннее 31 символа!
Важно: Если у вас не выводится отчет при нажатии на кнопку запросить(и она впадает при наведении курсора) вероятнее всего у вас стоит неверный пароль для пользователя SYSDBA. Паролем для пользователя SYSDBA являются первые 8 символов от пароля локальной консоли (или меньше, если пароль меньше восьми символов)
Также запросы можно выполнять из командной строки.
Выполнение запросов из командной строки
Из командной сторки запросы выполняются при помощи утилиты sqlexec таким образомsqlexec "текст запроса"
Дополнительные моменты
Вывод на экран в виде спискаsqlexec "set list on ; текст запроса"
Вывод на экран русских символов - добавьте в конец строки.| iconv -f cp1251
Запись в файл, для того чтобы забрать его по WinSCP / SCP позже:> /tmp/file
Примеры:
Пример 1. Список всех доступных телефонов абонентов в формате (порядковый номер, логин абонента, номер телефона)
select id, login, SMS from users where DELETED=0 and sms is not null
Пример 2. Список ФИО абонентов и их баланс на текущий момент
select identify as "FIO", (DEBIT + OSTATOK - CREDIT)/10000000000.00 as "BALANCE" from users where id<100000 and deleted=0 and end_user=1
Пример 3. Список всех доступных телефонов абонентов, у которых баланс меньше либо равен нулю.
select SMS from users where (DEBIT + OSTATOK - CREDIT)<=0 and DELETED=0 and SMS is not null
Пример 4. Список всех доступных МАС-адресов абонентов, использующих услугу IPTV с известным id.
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 \!= ''
Пример отчетов по VOIP.
select SRC as "Номер абонента", DST as "Направление звонка", S_TIME as "Начало звонка", E_TIME as "Окончание звонка", DURATION as "Общая длительность", BILL_SEC as "Платное время", CHAN, BILLED as "Обработан", USER_ID as "Ид пользователя" from VOIP_LOG 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
select SRC as "Номер абонента", DST as "Направление звонка", S_TIME as "Начало звонка", E_TIME as "Окончание звонка", DURATION as "Общая длительность", BILL_SEC as "Платное время", CHAN, BILLED as "Обработан", USER_ID as "Ид пользователя" from VOIP_LOG where USER_ID is 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
select U.IDENTIFY as "Наименование", UU.SIP_ID as "Номер", U.ENABLED as "1-Включен/0-Выключен" from USERS_USLUGA UU left join USERS U on UU.USER_ID = U.ID where UU.SYSTEM_TYPE = 5 order by U.ID
Пример 5. Список ФИО и Адрес всех абонентов. у которых в качестве nas_ip указан адрес 172.16.1.177:
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'
Пример 6. Список всех абонентов в формате (id, должность, тариф, ФИО, дата внесения) за период с 2012-11-01 до 2012-11-30 )
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')
Пример 7. Список абонентов, созданных за заданный период в формате (id, должность, тариф, ФИО, дата создания) :
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')
Пример 8. Список, соответствующих пользователям, кодов 1С из биллинга.
select U.ID as "Номер", U.IDENTIFY as "Наименование", U.CODE1C "Код синхронизации", U.SYNC1C as "1-синхронизирован/0-несинхронизирован" from USERS U where U.END_USER = 1
Пример 9. Список расхода абонентов за заданный период с 01.11.2012 по 25.11.2012 в формате (id, финансовый договор, ФИО, расход) (Для закрытого периода)
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 where (FO.OP_TYPE <>2 and FO.OP_TYPE <>3) and (FO.OP_DATE between '2012-11-01' and '2012-11-30') group by U.ID, U.CONTRACT_NUMBER, U.IDENTIFY
Пример 10. Список расхода абонентов за текущий период в формате (id, финансовый договор, ФИО, расход)
select id, contract_number, identify, credit/10000000000.00 from users where end_user=1 and id<100000
Пример 11. Список пользователей, подключенных за последний месяц (первая строка) (период с 2011-11-20 до 2011-12-20 ) и их количества (вторая).:
SELECT id, identify, login, create_date FROM users WHERE create_date>'2011-11-20' AND end_user=1 AND create_date<'2011-12-20'
SELECT COUNT(id) AS usercount FROM users WHERE create_date>'2011-11-20' AND end_user=1 AND create_date<'2011-12-20'
Пример 12. Перевод пользователей из подсетей 10.20.0.0/16...10.25.0.0/16 на Ideco AS с адресом 172.16.1.15
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.22.%' or uf_ip2string(host_ip) like '10.22.%' update users set nas_ip_lock=1, nas_ip=uf_string2ip('172.16.1.5') where uf_ip2string(ip) like '10.23.%' or uf_ip2string(host_ip) like '10.23.%' 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.%'
Пример 13. Список абонентов с рекомендуемой суммой к оплате
select user_id, sum(OP_SUMMA/10000000000) from finaions where op_date>(current_timestamp-120) and op_type=2 group by user_id
Пример 14. Список абонентов из заданной подсети 192.168.0.0/16
select id, login from users where uf_ip2string(ip) like '192.168.%'
Пример 15. Список одинаковых ИНН
select count(attribute_value), attribute_value from attribute_values where attribute_id=4 group by attribute_value having count(attribute_value)>1
Пример 16. Список должников (Тариф, ФИО, Телефон, Адрес, Баланс)
select (select TARIF_NAME from GLN_USR_TARIF(USERS.ID)) as "TARIF", USERS.IDENTIFY as "FIO", (select ATTRIBUTE_VALUES.ATTRIBUTE_VALUE from attribute_values where ATTRIBUTE_VALUES.USER_ID = USERS.ID and ATTRIBUTE_VALUES.ATTRIBUTE_ID = 1) as "ADRES", (select ATTRIBUTE_VALUES.ATTRIBUTE_VALUE from ATTRIBUTE_VALUES where ATTRIBUTE_VALUES.USER_ID = USERS.ID and ATTRIBUTE_VALUES.ATTRIBUTE_ID = 3) as "TELEFON", cast((DEBIT + OSTATOK - CREDIT) as double precision) / (select CONST_VALUE from VPN_CONST where CONST_ID = 1) as "BALANS" from USERS where cast((DEBIT + OSTATOK - CREDIT) as double precision) / (select CONST_VALUE from VPN_CONST where CONST_ID = 1) < 0 этот запрос устарел обратитесь в поддержку для получения нового запроса
Пример 17. Всех пользователей подсети 10.1.0.0/16 перевести на NAS 172.0.1.1, прикрепив к нему, установить авторизацию по радиус и поменять SNAT адрес на 192.168.5.0.
sqlexec "UPDATE users set snatip=uf_string2ip('192.168.5.0'), server=0, auth_type_cache=6, auth_type=6, nas_ip=uf_string2ip('172.0.1.1'), nas_ip_lock=1 WHERE uf_ip2string(ip) like '10.1.%'"
Пример 18. Список номинала всех активированных карт за выбранный период
select
(card_series.card_value/10000000000) as NOMINAL ,
cards.*
FROM CARDS
LEFT JOIN CARD_SERIES ON CARDS.SERIES_NO = card_series.SERIES_NO
WHERE
cards.date_used > '2012-12-01 00:00:00'
and cards.date_used < '2013-01-01 00:00:00'
and cards.date_used is not null
Пример 19. Список итоговой суммы всех активированных карт за выбранный период
select
SUM(card_series.card_value)/10000000000 as ALL_PERIOD_SUM
FROM CARDS
LEFT JOIN CARD_SERIES ON CARDS.SERIES_NO = card_series.SERIES_NO
WHERE
cards.date_used > '2012-12-01 00:00:00'
and cards.date_used < '2013-01-01 00:00:00'
and cards.date_used is not null
Пример 20. Список (Ф.И.О. , IP, NAS, баланс) с сортировкой фамилий по алфавиту
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
Пример 21. Список (Ф.И.О. , IP, NAS, баланс) с сортировкой фамилий по ip
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
Пример 22. Список (Ф.И.О. , Адрес, телефон для смс) с сортировкой фамилий по алфавиту
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
=====
Отчет
Отчеты