#zhiguo.ding   2017-9-14
#2016Q1,Q2,Q3在贷余额按季度跟月份展开 都用的all_back_0430库 合计结果1741619.91,9623199.11,64614030.46元，更改viewday即可使用

set @viewday='2016-7-1';
SELECT loan_age,month1,sum(loan) FROM
(SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(b.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(u.deadline>@viewday,u.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(u.deadline,"%Y-%m") month1, sum(u.principle) loan
FROM `baitiao_order` b
JOIN user_bt_repayment_plan u
ON b.ref_id=u.ref_id
WHERE DATE(b.loan_paid_at)<@viewday and b.is_active in(1,-2)
GROUP BY 1,2
UNION
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle)
FROM  baitiao_repay_plan_repay_record_ref t1
JOIN repay_record_online t2 on t1.record_id = t2.id and t1.repay_channel < 13 and t2.bill_time < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1,-2) and t4.loan_paid_at < @viewday
GROUP BY 1,2
UNION
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle)
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time <@viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1,-2) and t4.loan_paid_at < @viewday
GROUP BY 1,2
UNION
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle)
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_bank_repay_record t2 on t1.record_id = t2.id and t1.repay_channel in (14,15,16) and t2.transfer_time < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1,-2) and t4.loan_paid_at <@viewday
GROUP BY 1,2) as a
GROUP BY 1,2


#2016Q4在贷余额按季度跟月份展开 all_back_0630库 合计结果94546084.58

set @viewday='2017-01-01';
SELECT loan_age,month1,sum(loan) FROM
(SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(b.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(u.deadline>@viewday,u.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(u.deadline,"%Y-%m") month1, sum(u.principle) loan
FROM `baitiao_order` b
JOIN user_bt_repayment_plan u
ON b.ref_id=u.ref_id
WHERE DATE(b.loan_paid_at)<@viewday and b.is_active in(1)
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(b.train_cancel_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(u.deadline>@viewday,u.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(u.deadline,"%Y-%m") month1, sum(u.principle) loan
FROM `baitiao_order` b
JOIN user_bt_repayment_plan u
ON b.ref_id=u.ref_id
WHERE DATE(b.train_cancel_at)<@viewday and b.is_active =-2
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM  baitiao_repay_plan_repay_record_ref t1
JOIN repay_record_online t2 on t1.record_id = t2.id and t1.repay_channel < 13 and DATE(t2.bill_time) < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1) and DATE(t4.loan_paid_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM  baitiao_repay_plan_repay_record_ref t1
JOIN repay_record_online t2 on t1.record_id = t2.id and t1.repay_channel < 13 and DATE(t2.bill_time) < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (-2) and DATE(t4.train_cancel_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and DATE(t2.transfer_time) <@viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1) and DATE(t4.loan_paid_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and DATE(t2.transfer_time) <@viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (-2) and DATE(t4.train_cancel_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_bank_repay_record t2 on t1.record_id = t2.id and t1.repay_channel in (14,15,16) and DATE(t2.transfer_time) < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1) and DATE(t4.loan_paid_at) <@viewday
GROUP BY 1,2) as a
GROUP BY 1,2


#2017Q1 在贷余额按季度跟月份展开 all_back_0630  合计结果108253059.3
set @viewday='2017-04-01';
SELECT loan_age,month1,sum(loan) FROM
(SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(b.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(u.deadline>@viewday,u.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(u.deadline,"%Y-%m") month1, sum(u.principle) loan
FROM `baitiao_order` b
JOIN user_bt_repayment_plan u
ON b.ref_id=u.ref_id
WHERE DATE(b.loan_paid_at)<@viewday and b.is_active in(1)
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(b.train_cancel_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(u.deadline>@viewday,u.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(u.deadline,"%Y-%m") month1, sum(u.principle) loan
FROM `baitiao_order` b
JOIN user_bt_repayment_plan u
ON b.ref_id=u.ref_id
WHERE DATE(b.train_cancel_at)<@viewday and b.is_active =-2
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM  baitiao_repay_plan_repay_record_ref t1
JOIN repay_record_online t2 on t1.record_id = t2.id and t1.repay_channel < 13 and DATE(t2.bill_time) < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1) and DATE(t4.loan_paid_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM  baitiao_repay_plan_repay_record_ref t1
JOIN repay_record_online t2 on t1.record_id = t2.id and t1.repay_channel < 13 and DATE(t2.bill_time) < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (-2) and DATE(t4.train_cancel_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and DATE(t2.transfer_time) <@viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1) and DATE(t4.loan_paid_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and DATE(t2.transfer_time) <@viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (-2) and DATE(t4.train_cancel_at) < @viewday
GROUP BY 1,2
UNION ALL
SELECT TIMESTAMPDIFF(month, CONCAT(DATE_FORMAT(t4.loan_paid_at,'%Y-%m'),'-01'),CONCAT(DATE_FORMAT(IF(t3.deadline>@viewday,t3.deadline,@viewday),'%Y-%m'),'-01')) loan_age
, DATE_FORMAT(t3.deadline,"%Y-%m"),-sum(t1.principle - t1.mitigate_principle) loan
FROM baitiao_repay_plan_repay_record_ref t1
JOIN offline_bank_repay_record t2 on t1.record_id = t2.id and t1.repay_channel in (14,15,16) and DATE(t2.transfer_time) < @viewday
join user_bt_repayment_plan t3 on t3.id = t1.plan_id
join baitiao_order t4 on t4.ref_id = t3.ref_id and t4.is_active in (1) and DATE(t4.loan_paid_at) <@viewday
GROUP BY 1,2) as a
GROUP BY 1,2
