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

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

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

просмотр истории страницы
from PAY_LOG PL
left join USERS U on PL.USER_ID_IN = U.ID
where PL.MSG_OUT = 'ACCEPTED' and PL.OPERATOR_DATE_IN >= '2013.01.01' '2013-01-01'
group by U.ID, U.CONTRACT_NUMBER, U.IDENTIFY
{code}
{code}
SET TERM ^ ;
create procedure REP_FINOPER_LAST1 (
OP_TYPE_IN integer)
returns (
from FINANCE_OPERATIONS
where OP_ID = :TMP_OP_ID
and DESCR not like '%Обещанный платеж%'
order by OP_ID desc
into :OP_ID,
suspend;
end

end^
SET TERM ; ^
u.contract_number as "Договор",
tp.plan_name as "Тариф",
sum(FO.OP_SUMMA)/10000000000.00 as "Расход" "Приход"
from users u
left join tarif_plan tp on u.TARIFF_ID_CACHE=tp.plan_id
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 '2015-01-01' and '2015-07-01')
where fo.op_type=2 and (fo.OP_DATE between '2015-01-01' and '2015-07-01')
group by U.IDENTIFY,U.CONTRACT_NUMBER,tp.plan_name
{code}
{code}select distinct
users.IDENTIFY as "ФИО",
users.LOGIN users.login as "Логин",
users.sms as "Телефон",
AV.ATTRIBUTE_VALUE as "Адрес",
max(FINANCE_OPERATIONS.OP_DATE) as "Дата последнего платежа"
from users
left join FINANCE_OPERATIONS
on users.id=FINANCE_OPERATIONS.USER_ID
where users.parid=1580
and FINANCE_OPERATIONS.OP_TYPE=2
left join ATTRIBUTE_VALUES AV on ( Users.ID = AV.USER_ID and AV.ATTRIBUTE_ID = 3)
where users.parid=8
and users.deleted=0
group by users.IDENTIFY, users.LOGIN users.sms, users.login,AV.ATTRIBUTE_VALUE
{code}

*Пример 99. Список подключенных услуг у конкретного абонента с указанным логином (Услуга)*
{code:lang=sql}
select us.name as "Услуга"
from users_usluga uu
left join users u on uu.user_id=u.id
left join usluga us on uu.USLUGA_ID=us.id
where u.login='pupkin'
{code}

*Пример 100. Список приходов абонентов на конкретном тариф за указанный период*
{code:lang=sql}
select sum(FO.OP_SUMMA)/10000000000.00 as "Сумма"
from finance_operations fo
left join users u on u.id=fo.USER_ID
where fo.op_type=2 and u.TARIFF_ID_CACHE=37 and OP_DATE between '2016-09-01' and '2016-10-01'
{code}

*Пример 101. Список приходов абонентов через платежные системы за указанный период с указанием группы абонентов (папки) со всеми подгруппами и с Итоговой суммой (Номер договора, ФИО, Дата последнего платежа, Сумма платежа)*
{code:lang=sql}
select
U.CONTRACT_NUMBER,
U.IDENTIFY as "FIO",
max(PL.OPERATOR_DATE_IN) as "LAST PAY DATE",
sum(PL.SUMMA_IN)
from PAY_LOG PL
left join USERS U on PL.USER_ID_IN = U.ID
where PL.MSG_OUT = 'ACCEPTED' and PL.OPERATOR_DATE_IN >= '2013.01.01' and
U.parid in (select GROUP_ID from GLN_RECURSIVE_GROUP_WALK(654))
group by U.CONTRACT_NUMBER, U.IDENTIFY
union
select
cast('total' as varchar(32)),
cast('' as varchar(128)),
cast('' as timestamp),
sum(PL.SUMMA_IN)
from PAY_LOG PL
left join USERS U on PL.USER_ID_IN = U.ID
where PL.MSG_OUT = 'ACCEPTED' and PL.OPERATOR_DATE_IN >= '2013.01.01' and
U.parid in (select GROUP_ID from GLN_RECURSIVE_GROUP_WALK(654))
{code}
*Пример 102. Отчёт по платежам за выбранный период в формате "id платежа - номер договора - сумма платежа"*
{code}
select
fo.OP_ID,
u.contract_number,
sum(FO.OP_SUMMA)/10000000000.00 as "Приход"
from users u
left join tarif_plan tp on u.TARIFF_ID_CACHE=tp.plan_id
left join finance_operations fo on u.id=fo.USER_ID
where fo.op_type=2 and (fo.OP_DATE between '2015-01-01' and '2018-07-01')
group by fo.OP_ID,U.CONTRACT_NUMBER
{code}

*Пример 103. Отчёт который показывает абонентов, у которых финансовых операций с типом расход больше, чем 1 за один и тот же день.*
{code}
select OP_DATE,
user_id,
count(*)
from finance_operations
where op_type=1
group by OP_DATE,user_id
having count(*)>1
{code}