Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET SEARCH_PATH = _00000003, public;
- /*
- DROP INDEX _00000003."iЛид-РегламентДатаTmp";
- CREATE INDEX "iЛид-РегламентДатаTmp"
- ON _00000003."Лид"
- USING btree
- ("Регламент", COALESCE("ДатаФазы", "ДатаСоздания"));
- */
- EXPLAIN (analyze, buffers, verbose)
- WITH cteMyOfficeDocs AS
- (
- -- Области видимости
- SELECT UNNEST ( current_setting ( 'sbis3.rights.myOfficeDocs' ) ::INTEGER[] ) deptId
- )
- , -- Иерархия по отделам с учетом областей видимости (см. startDeptFilter)
- DEPT AS
- (
- WITH RECURSIVE SP AS
- (
- SELECT x."@Лицо" "Лицо"
- , x."Раздел"
- , x."Название"
- , x."Раздел@"
- FROM "СтруктураПредприятия" x
- WHERE x."Тип" = 0
- AND "Раздел" IS NULL
- UNION ALL
- SELECT z."@Лицо" "Лицо"
- , z."Раздел"
- , z."Название"
- , z."Раздел@"
- FROM SP y
- INNER JOIN "СтруктураПредприятия" z
- ON z."Раздел" = y."Лицо"
- WHERE z."Тип" = 0
- )
- SELECT *
- FROM SP
- )
- , -- Сотрудники отделов
- deptUsers AS
- (
- SELECT sv."ЧастноеЛицо" "Лицо"
- , sv."СтруктураПредприятия"
- , COALESCE ( p."Фамилия" || ' ' , '' ) || COALESCE ( SUBSTR ( p."Имя" , 1 , 1 ) || '.' , '' ) || COALESCE ( SUBSTR ( p."Отчество" , 1 , 1 ) || '.' , '' ) "Название"
- , sv."Пользователь"
- FROM "СвязиПользователя" SV
- INNER JOIN "ЧастноеЛицо" p
- ON sv."ЧастноеЛицо" = p."@Лицо"
- WHERE sv."ЧастноеЛицо" IS NOT NULL
- AND sv."УправленческаяСтруктура"
- AND sv."$Черновик" IS NULL
- AND EXISTS
- (
- SELECT NULL
- FROM DEPT d
- WHERE d."Лицо" = sv."СтруктураПредприятия"
- )
- )
- , leadlist AS
- (
- SELECT ld."@Документ"
- , COALESCE ( ld."ДатаФазы" , ld."ДатаСоздания" ) "ДатаФазы"
- , ld."Контрагент"
- , ld."Регламент"
- , ld."Фаза"
- , ld."ДатаСоздания"
- , ld."Результат" "Состояние"
- , ld."ПоследнийКонтакт"
- , ld."Сотрудник"
- , ld."Подразделение"
- , ld."НазваниеКлиента"
- , ld."КонтактныеДанные"
- , FALSE "Раздел@"
- , NULL "Раздел"
- FROM "Лид" LD
- WHERE TRUE
- AND ld."Результат" IS NULL
- AND ld."Черновик" IS NULL
- AND ld."Регламент" = 121
- ORDER BY COALESCE ( ld."ДатаФазы" , ld."ДатаСоздания" ) DESC
- LIMIT 21 OFFSET 0
- )
- , phases_num AS
- (
- SELECT ROW_NUMBER ( ) OVER (
- PARTITION BY "Регламент"
- ORDER BY "ПорНомер" ) "ФазаНомер"
- , "@Фаза"
- , "Регламент"
- FROM "Фаза" f
- WHERE EXISTS
- (
- SELECT NULL
- FROM leadlist
- WHERE leadlist."Регламент" = f."Регламент"
- )
- )
- , phases_cnt AS
- (
- SELECT COUNT ( "@Фаза" ) "ФазаВсего"
- , "Регламент"
- FROM phases_num
- GROUP BY "Регламент"
- )
- SELECT ll.*
- , s."ВидКонтакта"
- , COALESCE ( s."Примечание" , '' ) "СобытиеПримечание"
- , COALESCE ( s."ТипКонтакта" , 0 ) "ТипКонтакта"
- , COALESCE
- (
- (
- SELECT ( COALESCE ( pp."Фамилия" , '' ) || ' ' || COALESCE ( pp."Имя" , '' ) || ' ' || COALESCE ( pp."Отчество" , '' ) )
- FROM "Представитель" p
- LEFT JOIN "ЧастноеЛицо" PP
- ON pp."@Лицо" = p."ЧастноеЛицо"
- WHERE ll."Контрагент" = p."Контрагент" LIMIT 1
- )
- ,
- ''
- )
- "КлиентПредставитель"
- , px."Результат"
- , px."ФазаСледствие"
- , s."ЗвонокАгента"
- , rz."Название" "РезультатЗвонка"
- , a."Запись" IS NOT NULL "Запись"
- , a."НаправлениеИсходящий"
- , ll."Сотрудник" "Исполнитель"
- ,
- (
- SELECT l."Название"
- FROM "Лицо" l
- WHERE l."@Лицо" = ll."Сотрудник"
- )
- "Исполнитель.Название"
- , ll."Подразделение" "СтруктураПредприятия"
- ,
- (
- SELECT l."Название"
- FROM "Лицо" l
- WHERE l."@Лицо" = ll."Подразделение"
- )
- "СтруктураПредприятия.Название"
- , COALESCE ( k."Название" , ll."НазваниеКлиента" , '' ) "КлиентНазвание"
- , COALESCE ( kr."Телефон" , kr."email" , ll."КонтактныеДанные" , '' ) "КлиентКонтакт"
- , f."Название" "ФазаНазвание"
- , COALESCE ( r."Название" , '' ) "РегламентНазвание"
- , pc."ФазаВсего"
- , pn."ФазаНомер"
- FROM leadlist LL
- LEFT JOIN "Событие" s
- ON s."@Событие" = ll."ПоследнийКонтакт"
- LEFT JOIN "Переход" px
- ON px."@Переход" = s."Переход"
- LEFT JOIN "ЗвонокАгента" a
- ON a."@ЗвонокАгента" = s."ЗвонокАгента"
- LEFT JOIN "РезультатЗвонка" rz
- ON rz."@РезультатЗвонка" = a."РезультатЗвонка"
- LEFT JOIN "Контрагент" k
- ON k."@Лицо" = ll."Контрагент"
- LEFT JOIN "КонтрагентРасширение" kr
- ON kr."@Лицо" = k."@Лицо"
- LEFT JOIN "Фаза" f
- ON f."@Фаза" = ll."Фаза"
- LEFT JOIN "Регламент" r
- ON r."@Регламент" = ll."Регламент"
- LEFT JOIN phases_cnt pc
- ON ll."Регламент" = pc."Регламент"
- LEFT JOIN phases_num pn
- ON ll."Фаза" = pn."@Фаза"
- ORDER BY COALESCE ( ll."ДатаФазы" , ll."ДатаСоздания" ) DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement