Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.39 KB | None | 0 0
  1. WITH insurerQ AS (
  2.         SELECT
  3.           gi.GLOBAL_INSURER_ID,
  4.           mgi.MAIN_GLOBAL_INSURER_ID,
  5.           i.INSURER_REG_NUM,
  6.           i.INSURER_FULL_NAME,
  7.           i.INSURER_SHORT_NAME,
  8.           COALESCE(gi.GLOBAL_INSURER_INN, mgi.MAIN_GLOBAL_INSURER_INN) AS inn_inner,
  9.           COALESCE(gi.GLOBAL_INSURER_OGRN, mgi.MAIN_GLOBAL_INSURER_OGRN) AS ogrn_ip_inner,
  10.           gi.GLOBAL_INSURER_KPP,
  11.           i.CATEGORY_ID
  12.         FROM ASV_INSURER i
  13.           LEFT JOIN ASV_GLOBAL_INSURER gi ON i.INSURER_TYPE = 0 AND i.INSURER_OGRN IS NOT NULL AND i.INSURER_KPP IS NOT NULL
  14.                                              AND i.INSURER_INN = gi.GLOBAL_INSURER_INN AND i.INSURER_KPP = gi
  15.           .GLOBAL_INSURER_KPP AND i.INSURER_OGRN = gi.GLOBAL_INSURER_OGRN
  16.           LEFT JOIN ASV_MAIN_GLOBAL_INSURER mgi ON i.INSURER_TYPE = 1 AND i.INSURER_KPP IS NULL AND i.INSURER_INN = mgi
  17.           .MAIN_GLOBAL_INSURER_INN
  18.                                                    AND i.INSURER_OGRNIP = mgi.MAIN_GLOBAL_INSURER_OGRN
  19.         WHERE
  20.           i.INSURER_REG_NUM = #{insurerRegNum}
  21.     )
  22.     SELECT
  23.       a.CB_ACCOUNT_ID                          AS cbAccountId,
  24.       a.CB_ACCOUNT_ACCOUNT                     AS account,
  25.       a.CB_ACCOUNT_OPEN_DATE                   AS openDate,
  26.       a.CB_ACCOUNT_CLOSE_DATE                  AS closeDate,
  27.       a.CB_ACCOUNT_CHANGE_DATE                 AS changeDate,
  28.       a.CB_ACCOUNT_ELECTRONIC                  AS electronic,
  29.       a.CB_ACCOUNT_BANK_MAIN_ID                AS bankMain,
  30.       a.CB_ACCOUNT_BANK_BRANCH_ID              AS bankBranch,
  31.       a.CB_ACCOUNT_GLOBAL_INSURER_ID           AS insurer,
  32.       a.CB_ACCOUNT_COMMON_INSURER_ID           AS commonInsurer,
  33.       a.CB_ACCOUNT_STATUS_ID                   AS statusCode,
  34.       a.CB_ACCOUNT_CREATE                      AS createDate,
  35.       a.CB_ACCOUNT_UPDATE                      AS updateDate,
  36.       a.CB_ACCOUNT_BANK_OGRN                   AS bankOgrn,
  37.       COALESCE(COALESCE(b.BANK_BIC, bb.BANK_BRANCH_BIC), omg.BANK_BIC ) AS bankBIC,
  38.       COALESCE(COALESCE(b.BANK_FULL_NAME_BY_KGRKO, bb.BANK_BRANCH_NAME_BY_KGRKO), omg.BANK_FULL_NAME_BY_KGRKO) AS
  39.         bankFullName,
  40.       COALESCE(COALESCE(b.BANK_SHORT_NAME_BY_KGRKO, NULL), omg.BANK_SHORT_NAME_BY_KGRKO) AS bankShortName,
  41.       COALESCE(COALESCE(b.BANK_KSNP_BY_BIC, bb.BANK_BRANCH_KSNP_BY_BIC), omg.BANK_KSNP_BY_BIC) AS bankKSNP,
  42.       COALESCE(COALESCE(b.BANK_REGNUM_BY_KGRKO, NULL), omg.BANK_REGNUM_BY_KGRKO) AS bankRegNum,
  43.       COALESCE(COALESCE(b.BANK_INN_BY_GLOBAL_INSURER, bb.BANK_BRANCH_INN_BY_GLOBAL_INSURER),
  44.                omg.BANK_INN_BY_GLOBAL_INSURER) AS bankINN,
  45.       COALESCE(COALESCE(b.BANK_KPP_BY_GLOBAL_INSURER, bb.BANK_BRANCH_KPP_BY_GLOBAL_INSURER),
  46.                omg.BANK_KPP_BY_GLOBAL_INSURER) AS bankKPP,
  47.       s.GLOBAL_INSURER_KPP AS insurerKPP,
  48.       s.MAIN_GLOBAL_INSURER_ID AS commonInsurer,
  49.       s.GLOBAL_INSURER_ID AS insurer,
  50.       s.INSURER_REG_NUM AS insurerRegNum,
  51.       s.inn_inner AS insurerINN,
  52.       s.ogrn_ip_inner AS insurerOGRN,
  53.       s.INSURER_FULL_NAME AS insurerFullName,
  54.       s.INSURER_SHORT_NAME AS insurerShortName,
  55.       s.CATEGORY_ID AS insurerCategoryId
  56.     FROM
  57.       ASV_CB_ACCOUNT a
  58.       LEFT JOIN ASV_BANK b ON (b.BANK_ALIAS IS NULL AND a.CB_ACCOUNT_BANK_MAIN_ID = b.BANK_ID)
  59.                               AND a
  60.                                   .CB_ACCOUNT_BANK_BRANCH_ID
  61.                                   IS NULL
  62.       LEFT JOIN (SELECT
  63.                    * FROM ASV_BANK b
  64.                  WHERE b.BANK_ID = (SELECT DISTINCT
  65.                                       b2.BANK_ALIAS
  66.                                     FROM
  67.                                       ASV_BANK b2
  68.                                       JOIN
  69.                                       ASV_CB_ACCOUNT a ON b2.BANK_ID = a.CB_ACCOUNT_BANK_MAIN_ID
  70.                                     WHERE
  71.                                       b2.BANK_ALIAS IS NOT NULL fetch FIRST 1 ROW ONLY)) omg ON omg.BANK_ROOT = a
  72.     .CB_ACCOUNT_BANK_MAIN_ID
  73.       LEFT JOIN ASV_BANK_BRANCH bb ON a.CB_ACCOUNT_BANK_BRANCH_ID = bb.BANK_BRANCH_ID AND a.CB_ACCOUNT_BANK_MAIN_ID IS
  74.                                                                                           NULL
  75.       JOIN insurerQ AS s ON s.GLOBAL_INSURER_ID = a.CB_ACCOUNT_GLOBAL_INSURER_ID OR s.MAIN_GLOBAL_INSURER_ID = a.CB_ACCOUNT_COMMON_INSURER_ID
  76.     WHERE
  77.       a.CB_ACCOUNT_STATUS_ID IN (0,1,3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement