ntman

Untitled

Oct 1st, 2020
979
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. база 'ins-db2.unix.tensor.ru:6432/inside.tensor.ru' схема ''_00000003'':
  2. WITH objects0 AS (
  3.     -- если ищем всех клиентов
  4.     (-- отбираем клиентов-контрагентов
  5.      SELECT c_id "@Лицо"
  6.        FROM UNNEST(ARRAY[45118840]::INTEGER[]) t (c_id)
  7.       WHERE EXISTS (
  8.         SELECT NULL
  9.           FROM "Контрагент" k
  10.          WHERE k."@Лицо"           = t.c_id
  11.            AND k."НеОтображается" IS NOT TRUE
  12.            AND k."Type" <> 2
  13.            )
  14.       ORDER BY 1
  15.       LIMIT 25
  16.     )
  17.       UNION ALL
  18.     (-- отбираем клиентов-физиков
  19.      SELECT t."@Лицо"
  20.        FROM (
  21.          SELECT (
  22.             SELECT "@Лицо"
  23.               FROM "Контрагент" k
  24.              WHERE k."Entrepreneur"   IS NOT NULL
  25.                AND k."Entrepreneur"    = pp_ids.pp_id
  26.                AND k."Type"            = 2
  27.                AND k."НеОтображается" IS NOT TRUE
  28.                ) "@Лицо"
  29.            FROM UNNEST(ARRAY[25200184]::INTEGER[]) pp_ids (pp_id)
  30.           ORDER BY 1
  31.           LIMIT 25
  32.       ) t
  33.       WHERE t."@Лицо" IS NOT NULL
  34.       ORDER BY 1)
  35. )
  36. , objects1 AS (
  37.     -- ищем всех клиентов-физиков
  38.     SELECT t."@Лицо"
  39.       FROM (
  40.         SELECT (
  41.             SELECT "@Лицо"
  42.               FROM "Контрагент" k
  43.              WHERE k."Entrepreneur"   IS NOT NULL
  44.                AND k."Entrepreneur"    = pp_ids.pp_id
  45.                AND k."Type"            = 2
  46.                AND k."НеОтображается" IS NOT TRUE
  47.                ) "@Лицо"
  48.           FROM UNNEST(ARRAY[25200184]::INTEGER[]) pp_ids (pp_id)
  49.          ORDER BY 1
  50.          LIMIT 25
  51.      ) t
  52.      WHERE t."@Лицо" IS NOT NULL
  53.      ORDER BY 1
  54. )
  55. , objects2 AS (
  56.     -- ищем всех клиентов-физиков и частные лица
  57.     (SELECT t."@Лицо"
  58.        FROM (
  59.          SELECT (
  60.              SELECT "@Лицо"
  61.                FROM "Контрагент" k
  62.               WHERE k."Entrepreneur"   IS NOT NULL
  63.                 AND k."Entrepreneur"    = pp_ids.pp_id
  64.                 AND k."Type"            = 2
  65.                 AND k."НеОтображается" IS NOT TRUE
  66.                 ) "@Лицо"
  67.             FROM UNNEST(ARRAY[25200184]::INTEGER[]) pp_ids (pp_id)
  68.            ORDER BY 1
  69.            LIMIT 25
  70.       ) t
  71.       WHERE t."@Лицо" IS NOT NULL
  72.       ORDER BY 1)
  73.       UNION ALL
  74.     (SELECT pp."@Лицо"
  75.        FROM "ЧастноеЛицо" pp
  76.       WHERE pp."@Лицо" = ANY(ARRAY[25200184]::INTEGER[])
  77.         -- AND "Тип"   != 4
  78.         -- так как нам не нужны кандидаты, паредставители и удаленные сотрудники
  79.         -- а все физики у нас уже нашлись в первой секции, ищем только среди сотрудников
  80.         AND pp."Тип"   = ANY(ARRAY[0, 6]::INTEGER[])
  81.         AND NOT EXISTS(
  82.             SELECT NULL
  83.               FROM "Контрагент" k
  84.              WHERE k."Entrepreneur"   IS NOT NULL
  85.                AND k."Entrepreneur"    = pp."@Лицо"
  86.                AND k."Type"            = 2
  87.                AND k."НеОтображается" IS NOT TRUE
  88.              LIMIT 1
  89.         )
  90.       ORDER BY 1
  91.       LIMIT 25
  92.     )
  93. )
  94. , objects3 AS (
  95.     -- ищем ЧЛ сотрудников
  96.     SELECT "@Лицо"
  97.       FROM "ЧастноеЛицо"
  98.      WHERE "@Лицо" = ANY(ARRAY[25200184]::INTEGER[])
  99.        AND "Тип"   = ANY(ARRAY[0, 6]::INTEGER[])
  100.      ORDER BY 1
  101.      LIMIT 25
  102. )
  103. , objects4 AS (
  104.     -- ищем ЧЛ кандидатов
  105.     (SELECT pp_id "@Лицо"
  106.        FROM UNNEST(ARRAY[25200184]::INTEGER[]) pp_ids (pp_id)
  107.       WHERE EXISTS (
  108.         SELECT NULL
  109.           FROM "ЧастноеЛицо" p
  110.          WHERE p."@Лицо" = pp_ids.pp_id
  111.            AND (p."Тип"  = 5)::INTEGER = 1)
  112.       ORDER BY 1
  113.       LIMIT 25
  114.     )
  115.    
  116.       UNION
  117.     (SELECT "ЧастноеЛицо" "@Лицо"
  118.        FROM "Кандидат"
  119.       WHERE "$Черновик"   IS NULL
  120.         AND "ЧастноеЛицо" IS NOT NULL
  121.         AND "ЧастноеЛицо" = ANY(ARRAY[25200184]::INTEGER[])
  122.       ORDER BY 1
  123.       LIMIT 25
  124.      )
  125. )
  126. , objects5 AS (
  127.    SELECT c_id "@Лицо"
  128.        FROM UNNEST(ARRAY[45118840]::INTEGER[]) t (c_id)
  129.       WHERE EXISTS (
  130.         SELECT NULL
  131.           FROM "Контрагент" k
  132.          WHERE k."@Лицо"           = t.c_id
  133.            AND k."НеОтображается" IS NOT TRUE
  134.            )
  135.       ORDER BY 1
  136.       LIMIT 25
  137. )
  138. , objects6 AS (
  139.     -- если ищем всех клиентов
  140.     (-- отбираем клиентов-контрагентов
  141.      SELECT c_id "@Лицо"
  142.        FROM UNNEST(ARRAY[45118840]::INTEGER[]) t (c_id)
  143.       WHERE EXISTS (
  144.         SELECT NULL
  145.           FROM "Контрагент" k
  146.          WHERE k."@Лицо"           = t.c_id
  147.            AND k."НеОтображается" IS NOT TRUE
  148.            )
  149.       ORDER BY 1
  150.       LIMIT 25
  151.     )
  152.       UNION ALL
  153.     (-- отбираем клиентов-физиков
  154.      SELECT t."@Лицо"
  155.        FROM (
  156.          SELECT (
  157.             SELECT "@Лицо"
  158.               FROM "Контрагент" k
  159.              WHERE k."Entrepreneur"    = pp_ids.pp_id
  160.                AND k."Type"            = 2
  161.                AND k."НеОтображается" IS NOT TRUE
  162.                ) "@Лицо"
  163.            FROM UNNEST(ARRAY[25200184]::INTEGER[]) pp_ids (pp_id)
  164.           ORDER BY 1
  165.           LIMIT 25
  166.       ) t
  167.       WHERE t."@Лицо" IS NOT NULL
  168.       ORDER BY 1
  169.     )
  170.       UNION ALL
  171.     (-- отбираем фиктивные лица
  172.       SELECT "@Лицо"
  173.         FROM "Лицо"
  174.        WHERE "Лицо_" IS NULL
  175.          AND "@Лицо" = ANY(ARRAY[45118840]::INTEGER[])
  176.        ORDER BY 1
  177.        LIMIT 25
  178.     )
  179. )
  180. SELECT "@Лицо"
  181.   FROM objects0
  182.  
  183.  ORDER BY 1 OFFSET 0 LIMIT 25
RAW Paste Data