Advertisement
Guest User

Untitled

a guest
Mar 21st, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.76 KB | None | 0 0
  1. WITH t AS (SELECT
  2. ROW_NUMBER() OVER (ORDER BY id) AS paging,
  3.  res.* FROM (SELECT DISTINCT pr.id, pr.amount, r.id AS reg_id, r.name AS reg_name, pr.status_id, pr.description, s.name AS status_name
  4. , r.trigram, pm.id AS mreg_prod_id, pm.order_number AS order_number,
  5. tf.id AS tariff_id, tf.name AS tariff_name, tf.personality AS personality, tf.code AS tariff_code, tf.tech_name AS tariff_tech_name,
  6. v.id AS vendor_id, v.name AS vendor_name, hlr.id AS hlr_id, hlr.VALUE AS hlr_value,
  7. p.id AS profile_id, p.name AS profile_name, mr.id AS mr_id, mr.name AS mr_name, cd.code AS code_code,
  8. a.name AS auth_alg_name, d.id AS card_type_id, d.name AS card_type_name, p.code AS profile_code
  9. ,CASE WHEN INSTR(f.name, '_') = 0 THEN SUBSTR(f.name, 0, INSTR(f.name, '.') - 1) ELSE SUBSTR(f.name, 0, INSTR(f.name, '_') - 1) END AS full_file_name
  10. ,(
  11.   SELECT MAX(h.history_date) FROM usim_status_change_history h
  12.   join usim_status_change ch ON ch.id = h.status_change_id
  13.   WHERE h.entity_type = 7 AND h.entity_id = pr.id AND ch.status_to_id = 47
  14. ) AS attach_status_date
  15. ,CASE WHEN h_ret_flag.entity_id IS NOT NULL THEN 1 ELSE 0 END AS ret_flag, -- признак возврата из планирования,
  16. CASE WHEN h_files.cnt >= 3 THEN 1 ELSE 0 END AS all_files_flag -- признак того, что прикреплен полный комлект файлов
  17. FROM usim_production_region pr
  18. JOIN usim_region r ON r.id = pr.reg_id
  19. JOIN usim_production_macroregion pm ON pm.id = pr.mreg_prod_id
  20. JOIN usim_status s ON s.id = pr.status_id
  21. JOIN usim_vendor v ON v.id = pm.vendor_id
  22. JOIN usim_profile p ON p.id = pr.profile_id
  23. LEFT JOIN usim_auth_algorythm a ON p.auth_algo_id=a.id
  24. JOIN usim_hlr hlr ON hlr.id = pr.hlr_id
  25. JOIN usim_macro_region mr ON mr.id = pm.mreg_id
  26. JOIN usim_tariff tf ON tf.id = pm.tariff_id
  27. LEFT JOIN usim_file f ON f.id = pr.file_info_id
  28. LEFT JOIN usim_code_macro_region cm ON cm.mreg_id = mr.id
  29. LEFT JOIN usim_code cd ON cd.id = cm.code_id AND cd.tariff_id = tf.id AND cd.card_type_id = pm.card_type_id
  30. LEFT JOIN usim_card_type d ON d.id = cd.card_type_id
  31. LEFT JOIN usim_status_change_history hist ON hist.ENTITY_TYPE = 7 AND hist.ENTITY_ID = pr.id
  32. LEFT JOIN usim_status_change sch ON sch.id = hist.status_change_id
  33. LEFT JOIN (
  34.   SELECT entity_id FROM usim_status_change_history
  35.   WHERE entity_type = 7 AND status_change_id IN (SELECT id FROM usim_status_change WHERE status_from_id = 35 AND status_to_id IN (47,55))
  36.   GROUP BY entity_id
  37. ) h_ret_flag ON h_ret_flag.entity_id = pr.id
  38. LEFT JOIN (
  39.   SELECT entity_id, COUNT(id) AS cnt FROM usim_file WHERE entity_type_id = 7 AND file_type_id IN (6,7,8) GROUP BY entity_id
  40. ) h_files ON h_files.entity_id = pr.id
  41. WHERE (pr.status_id IN (35,48,38,55,39,36,37,40,47)) AND f.name LIKE '%MTS98557%') res
  42. )
  43. SELECT * FROM t;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement