Загрузка данных


Необходимо скорректировать скрипт с учетом требований + убрать закоммеченные строки + заменить константы дат для params на передаваемые параметры.

Сервис profiles: изменен регистр для атрибута pd.citizenship
with params as (

select '2026-03-31'::date at time zone 'gmt+03' as end_date

)

select u.id

, case u.type

when 'LEGAL' then lp.title

when 'ENTREPRENEUR' then concat_ws(' ', pd.last_name, pd.first_name, pd.second_name)

when 'INDIVIDUAL' then concat_ws(' ', pd.last_name, pd.first_name, pd.second_name)

end as title

, case u.type

when 'LEGAL' then 'ЮЛ'

when 'ENTREPRENEUR' then 'ФЛ'

when 'INDIVIDUAL' then 'ФЛ'

end as type_name

, case

when u.type = 'LEGAL' and p.legal_type = 'resident' then 'Резидент'

--when u.type in ('INDIVIDUAL', 'ENTREPRENEUR') and pd.citizenship = 'ru' then 'Резидент'

when u.type in ('INDIVIDUAL', 'ENTREPRENEUR') and pd.citizenship = 'RU' then 'Резидент'

else 'Нерезидент'

end as resident_status

, case u.type

when 'LEGAL' then lp.inn

when 'ENTREPRENEUR' then pd.inn

when 'INDIVIDUAL' then pd.inn

end as inn

, p.report_okato

, 'Нет' as qualified

, null as qualified_date

, null as disqualified_date

from params, users u

inner join profile p on p.user_id = u.id and p.type = u.type

left join individual_profile ip on ip.id = p.id

left join entrepreneur_profile ep on ep.id = p.id

left join legal_profile lp on lp.id = p.id

left join personal_data pd on pd.id = coalesce(ip.personal_data_id, ep.personal_data_id)

where u.type in ('LEGAL', 'ENTREPRENEUR', 'INDIVIDUAL')

and p.status = 'APPROVED'

and p.created_at <= params.end_date

;

 

 

Сервис investor-registry: добавлен фильтр по статусу записи, изменен атрибут по дате присвоения/снятия квалификации.

ВАЖНО!!! Логику определения статуса квалификации и дат его изменения нужно переиспользовать для отчетов 1_users. 

*Также было обнаружено, что в итоговом отчете не заполняются столбцы Дата присвоения квалификации и Дата снятия квалификации; необходимо для заполнения использовать значение qualified_updated_at*
with params as (

select '2026-03-31'::date at time zone 'gmt+03' as end_date

)

select a.user_uuid as user_id

, a.application_type = 'inclusion' as is_qualified

, a.created_at

, a.updated_at

– новая дата присвоения квалификации

, coalesce(a.updated_at, a.created_at) as qulififed_updated_at

from params, applications a

where a.application_type in ('inclusion', 'exclusion')

/* and a.created_at = (

select max(a2.created_at)

from applications a2

where a2.user_uuid = a.user_uuid

and a2.application_type = a.application_type

and a2.created_at <= params.end_date

)*/

--добавление нового фильтра по статусу и по реальной дате присвоения квалификации

and a.status ='approved'

and coalesce(a.updated_at, a.created_at) = (

select max(coalesce(a2.updated_at, a2.created_at))

from applications a2

where a2.user_uuid = a.user_uuid

and a2.application_type = a.application_type

and a2.status = 'approved'

and coalesce(a2.updated_at, a2.created_at) <= params.end_date

)

;