|
| 1 | +# -*- coding:utf-8 -*- |
| 2 | +""" |
| 3 | + 用来保存贷后SQL |
| 4 | +""" |
| 5 | +# 每日到期订单 |
| 6 | +expired_daily = """ |
| 7 | + SELECT tmp.loanDate AS '放款日期', |
| 8 | + sum((CASE WHEN (tmp.paymentNum = 1 AND datediff(now(),tmp.repaymentDate)>0) THEN 1 ELSE 0 END)) AS '到期笔数1', |
| 9 | + sum((CASE WHEN (tmp.paymentNum = 2 AND datediff(now(),tmp.repaymentDate)>0) THEN 1 ELSE 0 END)) AS '到期笔数2', |
| 10 | + sum((CASE WHEN (tmp.paymentNum >= 3 AND datediff(now(),tmp.repaymentDate)>0) THEN 1 ELSE 0 END)) AS '到期笔数3+' |
| 11 | + FROM ( SELECT |
| 12 | + (CASE WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NOT NULL AND lo.`status` = 1000 ) |
| 13 | + THEN datediff(lo.`actual_repayment_date`, lo.`repayment_date` ) |
| 14 | + WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NULL ) THEN datediff(now(),lo.repayment_date) |
| 15 | + WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NOT NULL AND lo.`status` != 1000 ) |
| 16 | + THEN datediff(now(),lo.repayment_date) |
| 17 | + ELSE '0' END) AS 'dueDays', |
| 18 | + DATE_FORMAT(lo.`loan_date`, '%y-%m-%d') AS 'loanDate', |
| 19 | + lo.`repayment_date` AS 'repaymentDate', |
| 20 | + (CASE WHEN (lo.due = 1) THEN '是' |
| 21 | + WHEN (lo.due = 0) THEN '否' |
| 22 | + ELSE '未知' END) AS 'isDUe', |
| 23 | + (SELECT COUNT(a.id) FROM pdl_loan_order a WHERE a.user_id = lo.user_id |
| 24 | + AND a.`create_time` > '2017-02-16 00:00:00' AND a.`create_time` <= lo.create_time |
| 25 | + AND a.status IN (30,35,-60,-100,1000)) AS 'paymentNum' |
| 26 | + FROM |
| 27 | + `pdl_loan_order` lo |
| 28 | +
|
| 29 | + WHERE lo.`create_time` >= '2017-02-16 00:00:00' AND lo.`loan_date` >= '2017-07-01' |
| 30 | + AND lo.`loan_date` <=date_sub(curdate(),INTERVAL 0 DAY) |
| 31 | + AND lo.`user_id` NOT IN('8688485082575304' ,'8688485139642602','8688487288128300','8688494921401201', |
| 32 | + '8688496375422203','8688485081906005','8688495287722601','8688485081962305','8688493352520000', |
| 33 | + '8688489997182404','8688490150744709','8688490174210505','8688490254451201','8688492163295307', |
| 34 | + '8688498541093603','8688493352858707') AND lo.`status` IN (30,35,-60,-100,1000) ) AS tmp |
| 35 | + WHERE loanDate IS NOT NULL |
| 36 | + GROUP BY loanDate |
| 37 | + ORDER BY loanDate ASC; |
| 38 | +""" |
| 39 | + |
| 40 | +# 到期一个月以上 |
| 41 | +expired_one_month_more = """ |
| 42 | + SELECT tmp.loanDate AS '放款月份', |
| 43 | + sum((CASE WHEN (tmp.paymentNum= 1) THEN 1 ELSE 0 END)) AS '放款1', |
| 44 | + sum((CASE WHEN (tmp.paymentNum= 2) THEN 1 ELSE 0 END)) AS '放款2', |
| 45 | + sum((CASE WHEN (tmp.paymentNum >= 3) THEN 1 ELSE 0 END)) AS '放款3+', |
| 46 | + sum((CASE WHEN (tmp.paymentNum = 1 AND datediff(now(),tmp.repaymentDate)>30) THEN 1 ELSE 0 END)) AS '到期一个月以上笔数1', |
| 47 | + sum((CASE WHEN (tmp.paymentNum = 2 AND datediff(now(),tmp.repaymentDate)>30) THEN 1 ELSE 0 END)) AS '到期一个月以上笔数2', |
| 48 | + sum((CASE WHEN (tmp.paymentNum >= 3 AND datediff(now(),tmp.repaymentDate)>30) THEN 1 ELSE 0 END)) AS '到期一个月以上笔数3+' |
| 49 | +FROM ( SELECT |
| 50 | + (CASE WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NOT NULL AND lo.`status` = 1000 ) |
| 51 | + THEN datediff(lo.`actual_repayment_date`, lo.`repayment_date` ) |
| 52 | + WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NULL ) THEN datediff(now(),lo.repayment_date) |
| 53 | + WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NOT NULL AND lo.`status` != 1000 ) |
| 54 | + THEN datediff(now(),lo.repayment_date) |
| 55 | + ELSE '0' END) AS 'dueDays', |
| 56 | + DATE_FORMAT(lo.`loan_date`, '%y-%m') AS 'loanDate', |
| 57 | + lo.`repayment_date` AS 'repaymentDate', |
| 58 | + (SELECT COUNT(a.id) FROM pdl_loan_order a WHERE a.user_id = lo.user_id |
| 59 | + AND a.`create_time` > '2017-02-16 00:00:00' AND a.`create_time` <= lo.create_time |
| 60 | + AND a.status IN (30,35,-60,-100,1000)) AS 'paymentNum' |
| 61 | + FROM |
| 62 | + `pdl_loan_order` lo |
| 63 | +
|
| 64 | + WHERE lo.`create_time` >= '2017-02-16 00:00:00' AND lo.`loan_date` <=date_sub(curdate(),INTERVAL 0 DAY) |
| 65 | + AND lo.`user_id` NOT IN('8688485082575304' ,'8688485139642602','8688487288128300','8688494921401201', |
| 66 | + '8688496375422203','8688485081906005','8688495287722601','8688485081962305','8688493352520000', |
| 67 | + '8688489997182404','8688490150744709','8688490174210505','8688490254451201','8688492163295307', |
| 68 | + '8688498541093603','8688493352858707') AND lo.`status` IN (30,35,-60,-100,1000) ) AS tmp |
| 69 | +WHERE loanDate IS NOT NULL |
| 70 | +GROUP BY loanDate |
| 71 | +ORDER BY loanDate ASC; |
| 72 | +""" |
| 73 | + |
| 74 | +# 到期 |
| 75 | +expired_all = """ |
| 76 | + SELECT tmp.loanDate AS '放款月份', |
| 77 | + sum((CASE WHEN (tmp.paymentNum= 1) THEN 1 ELSE 0 END)) AS '放款1', |
| 78 | + sum((CASE WHEN (tmp.paymentNum= 2) THEN 1 ELSE 0 END)) AS '放款2', |
| 79 | + sum((CASE WHEN (tmp.paymentNum >= 3) THEN 1 ELSE 0 END)) AS '放款3+', |
| 80 | + sum((CASE WHEN (tmp.paymentNum = 1 AND datediff(now(),tmp.repaymentDate)>0) THEN 1 ELSE 0 END)) AS '到期笔数1', |
| 81 | + sum((CASE WHEN (tmp.paymentNum = 2 AND datediff(now(),tmp.repaymentDate)>0) THEN 1 ELSE 0 END)) AS '到期笔数2', |
| 82 | + sum((CASE WHEN (tmp.paymentNum >= 3 AND datediff(now(),tmp.repaymentDate)>0) THEN 1 ELSE 0 END)) AS '到期笔数3+' |
| 83 | +FROM ( SELECT |
| 84 | + (CASE WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NOT NULL AND lo.`status` = 1000 ) |
| 85 | + THEN datediff(lo.`actual_repayment_date`, lo.`repayment_date` ) |
| 86 | + WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NULL ) THEN datediff(now(),lo.repayment_date) |
| 87 | + WHEN (lo.due = 1 AND lo.`actual_repayment_date` IS NOT NULL AND lo.`status` != 1000 ) |
| 88 | + THEN datediff(now(),lo.repayment_date) |
| 89 | + ELSE '0' END) AS 'dueDays', |
| 90 | + DATE_FORMAT(lo.`loan_date`, '%y-%m') AS 'loanDate', |
| 91 | + lo.`repayment_date` AS 'repaymentDate', |
| 92 | + (CASE WHEN (lo.due = 1) THEN '是' |
| 93 | + WHEN (lo.due = 0) THEN '否' |
| 94 | + ELSE '未知' END) AS 'isDUe', |
| 95 | + (SELECT COUNT(a.id) FROM pdl_loan_order a WHERE a.user_id = lo.user_id |
| 96 | + AND a.`create_time` > '2017-02-16 00:00:00' AND a.`create_time` <= lo.create_time |
| 97 | + AND a.status IN (30,35,-60,-100,1000)) AS 'paymentNum' |
| 98 | + FROM |
| 99 | + `pdl_loan_order` lo |
| 100 | + WHERE lo.`create_time` >= '2017-02-16 00:00:00' AND lo.`loan_date` <=date_sub(curdate(),INTERVAL 0 DAY) |
| 101 | + AND lo.`user_id` NOT IN('8688485082575304' ,'8688485139642602','8688487288128300','8688494921401201', |
| 102 | + '8688496375422203','8688485081906005','8688495287722601','8688485081962305','8688493352520000', |
| 103 | + '8688489997182404','8688490150744709','8688490174210505','8688490254451201','8688492163295307', |
| 104 | + '8688498541093603','8688493352858707') AND lo.`status` IN (30,35,-60,-100,1000) ) AS tmp |
| 105 | +WHERE loanDate IS NOT NULL |
| 106 | +GROUP BY loanDate |
| 107 | +ORDER BY loanDate ASC; |
| 108 | +""" |
| 109 | + |
| 110 | +# 决策订单逾期率 |
| 111 | +decision_sys_due_rate = """ |
| 112 | + select |
| 113 | + date(loan_date) AS '放款日期', |
| 114 | + count(*) AS '放款笔数', |
| 115 | + sum((case when (datediff(now(),o.`repayment_date` )>0)then 1 else 0 end )) AS '到期笔数', |
| 116 | + sum((case when (due = 1) then 1 else 0 end )) AS '逾期笔数', |
| 117 | + o.`loan_period` AS '借款期限', |
| 118 | + o.`review_by` AS 'review_by(0:贷前,1:决策系统,2:被拒订单分流)' |
| 119 | + from `pdl_decision_sys_result` pd |
| 120 | + LEFT JOIN `pdl_loan_order` o ON pd.`order_id` = o.`id` |
| 121 | + LEFT JOIN `pdl_user_id_card` ui ON ui.`user_id` = o.`user_id` |
| 122 | + LEFT JOIN `pdl_user_basic` u ON o.`user_id` = u.`id` |
| 123 | + where o.create_time >= '2017-07-11' and o.status in(30,35,-60,-100,1000) |
| 124 | + and o.`review_by` != 0 |
| 125 | + and o.`user_id` not in('8688485082575304' ,'8688485139642602','8688487288128300','8688487131293707', |
| 126 | + '8688494921401201','8688496375422203','8688485081906005','8688495287722601','8688485081962305', |
| 127 | + '8688493352520000','8688489997182404','8688490150744709','8688490174210505','8688490254451201', |
| 128 | + '8688492163295307','8688498541093603','8688493352858707') |
| 129 | +group by date(loan_date),o.`loan_period` ,o.`review_by` |
| 130 | +""" |
| 131 | + |
| 132 | +# 决策订单通过率 |
| 133 | +decision_sys_pass_rate = """ |
| 134 | + select |
| 135 | + tmp.o_time AS '申请时间', |
| 136 | + tmp.o_count AS '申请笔数', |
| 137 | + tmp.tg_count AS '通过笔数', |
| 138 | + concat(FORMAT((tmp.tg_count/tmp.o_count)*100,2),'%') AS '通过率', |
| 139 | + tmp.review_by AS 'review_by(0:贷前,1:决策系统,2:被拒订单分流)' |
| 140 | + from ( select Date(o.`create_time` )AS 'o_time', count(*) AS 'o_count', |
| 141 | + sum((case when(o.status in (30,35,-60,-100,1000,20,25)) then 1 else 0 end)) As 'tg_count', |
| 142 | + o.`review_by` AS 'review_by' |
| 143 | + from `pdl_decision_sys_result` pd |
| 144 | + LEFT JOIN `pdl_loan_order` o ON pd.`order_id` = o.`id` |
| 145 | + LEFT JOIN `pdl_user_id_card` ui ON ui.`user_id` = o.`user_id` |
| 146 | + LEFT JOIN `pdl_user_basic` u ON o.`user_id` = u.`id` |
| 147 | + where o.`review_by` != 0 |
| 148 | + and o.`user_id` not in('8688485082575304' ,'8688485139642602','8688487288128300','8688487131293707', |
| 149 | + '8688494921401201','8688496375422203','8688485081906005','8688495287722601','8688485081962305', |
| 150 | + '8688493352520000','8688489997182404','8688490150744709','8688490174210505','8688490254451201', |
| 151 | + '8688492163295307','8688498541093603','8688493352858707') |
| 152 | + group by Date(o.`create_time` ),o.`review_by` ) tmp |
| 153 | +""" |
0 commit comments