Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET SEARCH_PATH TO _00000003, public;
- EXPLAIN ( BUFFERS, ANALYZE, VERBOSE )
- WITH cteMyOfficeDocs AS (
- -- Области видимости
- SELECT UNNEST('{81}' :: INTEGER []) deptId
- ),
- dept AS (
- SELECT
- x."@Лицо" "Лицо",
- x."Раздел",
- x."Название",
- x."Раздел@"
- FROM
- "СтруктураПредприятия" x
- WHERE
- x."Тип" = 0
- AND EXISTS(
- SELECT NULL
- FROM cteMyOfficeDocs s
- WHERE
- s.deptId = x."@Лицо"
- LIMIT 1
- )
- ),
- -- Сотрудники отделов
- 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."СтруктураПредприятия"
- )
- )
- ,
- T AS (
- SELECT
- (a)."Контрагент",
- (a)."Регламент",
- (a)."НазваниеКонтрагента",
- (a)."Исполнитель",
- (a)."СтруктураПредприятия",
- (a)."ДатаПоследнегоИтоговогоКонтакта",
- (a)."ДатаПоследнегоПлановогоКонтакта",
- (a)."Дата",
- (a)."ПоследнийПлановыйКонтакт",
- (a)."ПоследнийКонтакт",
- (a)."Событие"
- FROM (
- SELECT UNNEST(ARRAY(
- SELECT KK
- FROM "КонтрагентКонтакт" KK
- --{filter_join}
- WHERE KK."Регламент" = 121
- AND KK."Исполнитель" = d."Лицо"
- ORDER BY KK."Регламент" ASC NULLS LAST, KK."Исполнитель" ASC NULLS LAST, KK."Дата" DESC NULLS LAST
- LIMIT 2000
- )
- ) a
- FROM deptUsers d
- ) t
- ORDER BY (a)."Дата" DESC NULLS LAST
- LIMIT 1000 OFFSET 1000
- )
- SELECT KK.* /*
- KK."Контрагент" "ИдО",
- KK."Контрагент",
- KK."НазваниеКонтрагента" "Название",
- KK."Исполнитель",
- KK."СтруктураПредприятия",
- KK."Дата" "Дата",
- ev."Примечание",
- KK."Событие" "ПоследнийКонтакт",
- f."Название" "Стадия",
- p."Название" "Итог",
- p."ФазаОснование",
- p."ФазаСледствие",
- p."Результат",
- COALESCE(l."Название", '') "Исполнитель.Название",
- COALESCE(l2."Название", '') "СтруктураПредприятия.Название",
- COALESCE(Pr."@Лицо", 0) "Предприниматель",
- NULL :: INT "ИдУдаления",
- KK."Регламент",
- r."Название" "НазваниеРегламента",
- r."Флаги" [3] "Регламент.Удален",
- COALESCE(ev."ТипКонтакта", 0) "ТипКонтакта",
- ev."ВидКонтакта",
- bell."@ЗвонокАгента" "Звонок",
- bell."Запись",
- bell."НаправлениеИсходящий",
- res_bell."Название" "РезультатЗвонка"
- */
- FROM T KK /*
- LEFT JOIN "Событие" ev ON ev."@Событие" = KK."Событие"
- LEFT JOIN "Регламент" r ON KK."Регламент" = r."@Регламент"
- LEFT JOIN "Переход" p ON p."@Переход" = ev."Переход"
- LEFT JOIN "Фаза" f ON f."@Фаза" = p."ФазаСледствие"
- LEFT JOIN "Предприниматель" Pr ON Pr."@Лицо" = KK."Контрагент"
- LEFT JOIN "Лицо" l ON l."@Лицо" = KK."Исполнитель"
- LEFT JOIN "Лицо" l2 ON l2."@Лицо" = KK."СтруктураПредприятия"
- LEFT JOIN "ЗвонокАгента" bell ON bell."@ЗвонокАгента" = ev."ЗвонокАгента"
- LEFT JOIN "РезультатЗвонка" res_bell ON res_bell."@РезультатЗвонка" = bell."РезультатЗвонка"*/
- ORDER BY "Дата" DESC NULLS LAST;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement