Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH t AS (SELECT
- ROW_NUMBER() OVER (ORDER BY id) AS paging,
- res.* FROM (SELECT pr.id, pr.amount, r.id AS reg_id, r.name AS reg_name, pr.status_id, pr.description, s.name AS status_name
- , r.trigram, pm.id AS mreg_prod_id, pm.order_number AS order_number,
- 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,
- v.id AS vendor_id, v.name AS vendor_name, hlr.id AS hlr_id, hlr.VALUE AS hlr_value,
- 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,
- a.name AS auth_alg_name, cd.card_type_id, card_type_name, p.code AS profile_code, f.name AS file_name
- FROM usim_production_region pr
- JOIN usim_region r ON r.id = pr.reg_id
- JOIN usim_production_macroregion pm ON pm.id = pr.mreg_prod_id
- JOIN usim_status s ON s.id = pr.status_id
- JOIN usim_vendor v ON v.id = pm.vendor_id
- JOIN usim_profile p ON p.id = pr.profile_id
- LEFT JOIN usim_auth_algorythm a ON p.auth_algo_id=a.id
- JOIN usim_hlr hlr ON hlr.id = pr.hlr_id
- JOIN usim_macro_region mr ON mr.id = pm.mreg_id
- JOIN usim_tariff tf ON tf.id = pm.tariff_id
- LEFT JOIN usim_file f ON f.id = pr.file_info_id
- LEFT JOIN (
- SELECT cd.*, d.name AS card_type_name, cm.mreg_id FROM usim_code cd
- join usim_card_type d ON d.id = cd.card_type_id
- join usim_code_macro_region cm ON cd.id = cm.code_id
- ) cd ON cd.mreg_id = mr.id AND cd.tariff_id = tf.id AND cd.card_type_id = pm.card_type_id
- WHERE (pr.status_id IN (35,48,38,55,39,36,37,40,47))) res
- )
- SELECT q.*,
- CASE WHEN INSTR(q.file_name, '_') = 0 THEN SUBSTR(q.file_name, 0, INSTR(q.file_name, '.') - 1) ELSE SUBSTR(q.file_name, 0, INSTR(q.file_name, '_') - 1) END AS full_file_name,
- (
- SELECT MAX(h.history_date) FROM usim_status_change_history h
- join usim_status_change ch ON ch.id = h.status_change_id
- WHERE h.entity_type = 7 AND h.entity_id = q.id AND ch.status_to_id = 47
- ) AS attach_status_date,
- CASE WHEN h_ret_flag.entity_id IS NOT NULL THEN 1 ELSE 0 END AS ret_flag, -- признак возврата из планирования
- CASE WHEN h_files.cnt >= 3 THEN 1 ELSE 0 END AS all_files_flag -- признак того, что прикреплен полный комлект файлов
- FROM t q
- LEFT JOIN (
- SELECT entity_id FROM usim_status_change_history
- 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))
- GROUP BY entity_id
- ) h_ret_flag ON h_ret_flag.entity_id = q.id
- LEFT JOIN (
- 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
- ) h_files ON h_files.entity_id = q.id
- WHERE paging BETWEEN 1 AND 100
- ORDER BY paging;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement