apzl_leasing/src_sql/view/vi_split_config.sql
2020-09-21 13:34:03 +08:00

37 lines
3.3 KiB
SQL
Raw Blame History

CREATE
VIEW `apzl`.`vi_split_config`
AS
(
SELECT
`lci`.`distributor_id` AS `distributor_id`,
`lci`.`ID` AS `contract_id`,
`lci`.`CONTRACT_NO` AS `CONTRACT_NO`,
`lrp`.`plan_list` AS `plan_list`,
(CASE WHEN (`lrp`.`plan_list` < `lccc`.`charge_1`) THEN 0 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_1`) AND ((`lrp`.`plan_list` < `lccc`.`charge_2`) OR (`lccc`.`charge_2` = 0))) THEN `lccc`.`charge_1` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_2`) AND ((`lrp`.`plan_list` < `lccc`.`charge_3`) OR (`lccc`.`charge_3` = 0))) THEN `lccc`.`charge_2` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_3`) AND ((`lrp`.`plan_list` < `lccc`.`charge_4`) OR (`lccc`.`charge_4` = 0))) THEN `lccc`.`charge_3` WHEN (`lrp`.`plan_list` >= `lccc`.`charge_4`) THEN `lccc`.`charge_4` ELSE 0 END) AS `lccc_charge`,
(CASE WHEN (`lrp`.`plan_list` < `lccc`.`charge_1`) THEN 0 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_1`) AND ((`lrp`.`plan_list` < `lccc`.`charge_2`) OR (`lccc`.`charge_2` = 0))) THEN `lccc`.`ratio_1` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_2`) AND ((`lrp`.`plan_list` < `lccc`.`charge_3`) OR (`lccc`.`charge_3` = 0))) THEN `lccc`.`ratio_2` WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_3`) AND ((`lrp`.`plan_list` < `lccc`.`charge_4`) OR (`lccc`.`charge_4` = 0))) THEN `lccc`.`ratio_3` WHEN (`lrp`.`plan_list` >= `lccc`.`charge_4`) THEN `lccc`.`ratio_4` ELSE 0 END) AS `lccc_ratio`,
(CASE WHEN (`lrp`.`plan_list` < `lccc`.`charge_1`) THEN 0 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_1`) AND ((`lrp`.`plan_list` < `lccc`.`charge_2`) OR (`lccc`.`charge_2` = 0))) THEN 1 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_2`) AND ((`lrp`.`plan_list` < `lccc`.`charge_3`) OR (`lccc`.`charge_3` = 0))) THEN 2 WHEN ((`lrp`.`plan_list` >= `lccc`.`charge_3`) AND ((`lrp`.`plan_list` < `lccc`.`charge_4`) OR (`lccc`.`charge_4` = 0))) THEN 3 WHEN (`lrp`.`plan_list` >= `lccc`.`charge_4`) THEN 4 ELSE 0 END) AS `lccc_list`
FROM ((`apzl`.`lc_commission_charge_config` `lccc`
LEFT JOIN (SELECT ci.product_id,ci.distributor_id,ci.id,ci.contract_no,lcc.lease_term FROM `apzl`.`lb_contract_info` ci JOIN lc_calc_condition lcc ON ci.id=lcc.contract_id ) `lci`
ON (((`lccc`.`product_id` = `lci`.`PRODUCT_ID`)
AND (`lccc`.`distributor_id` = `lci`.`distributor_id`))
AND lccc.income_number=lci.lease_term))
LEFT JOIN (SELECT
`apzl`.`lc_rent_plan`.`CONTRACT_ID` AS `contract_id`,
MAX(`apzl`.`lc_rent_plan`.`PLAN_LIST`) AS `plan_list`,
`apzl`.`lc_rent_plan`.`COLLECT_STATUS` AS `COLLECT_STATUS`,
`apzl`.`lc_rent_plan`.`INTEREST_sp` AS `interest_sp`,
COUNT(0) AS `plan_count`
FROM `apzl`.`lc_rent_plan`
WHERE ((1 = 1)
AND (`apzl`.`lc_rent_plan`.`COLLECT_STATUS` IN('΢<EFBFBD><EFBFBD>','<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD>','<EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD>','<EFBFBD>ֹ<EFBFBD><EFBFBD>տ<EFBFBD>')))
GROUP BY `apzl`.`lc_rent_plan`.`CONTRACT_ID`) `lrp`
ON ((`lci`.`ID` = `lrp`.`contract_id`)))
WHERE ((NOT(`lci`.`ID` IN(SELECT
`apzl`.`lc_split_occupy_process`.`contract_id`
FROM `apzl`.`lc_split_occupy_process`)))
AND (`lrp`.`plan_list` IS NOT NULL)
AND (`lrp`.`interest_sp` IS NOT NULL)
AND (`lrp`.`plan_count` = `lrp`.`plan_list`))
);