apzl_leasing/src_sql/view/vi_overdue_rent_plan.sql
2020-07-02 16:38:09 +08:00

48 lines
2.9 KiB
SQL

DELIMITER $$
ALTER ALGORITHM=UNDEFINED DEFINER=`apzl`@`%` SQL SECURITY DEFINER VIEW `vi_overdue_rent_plan` AS (
-- 查询字段变动时记得把lc_overdue_rent_plan也改一下
SELECT
`lrp`.`ID` AS `ID`,
`lrp`.`QUOT_ID` AS `QUOT_ID`,
`lrp`.`CUST_ID` AS `CUST_ID`,
`lrp`.`PROJECT_ID` AS `PROJECT_ID`,
`lrp`.`PROJECT_PLAN_NUMBER` AS `PROJECT_PLAN_NUMBER`,
`lrp`.`CONTRACT_ID` AS `CONTRACT_ID`,
`lrp`.`CONTRACT_PLAN_NUMBER` AS `CONTRACT_PLAN_NUMBER`,
`lrp`.`PAYMENT_NUMBER` AS `PAYMENT_NUMBER`,
`lrp`.`PLAN_LIST` AS `PLAN_LIST`,
`lrp`.`PLAN_DATE` AS `PLAN_DATE`,
`lrp`.`RENT` AS `RENT`,
`lrp`.`CORPUS` AS `corpus`,
`income`.`hire_date` AS `HIRE_DATE`,
IFNULL(`income`.`fact_rent`,0) AS `fact_rent`,
IFNULL(`income`.`fact_corpus`,0) AS `fact_corpus`,
IFNULL(`income`.`fact_penalty`,0) AS `fact_penalty`,
(IFNULL(`lrp`.`RENT`,0) - IFNULL(`income`.`fact_rent`,0)) AS `overduerent`,
(IFNULL(`lrp`.`INTEREST`,0) - IFNULL(`income`.`fact_interest`,0)) AS `overinterest`,
`getRentPenalty`(
`lrp`.`PAYMENT_NUMBER`,`lrp`.`PLAN_LIST`,DATE_FORMAT(SYSDATE(),'%Y/%m/%d')) AS `penalty`,
(CASE WHEN ((IFNULL(`income`.`fact_rent`,0) - IFNULL(`lrp`.`RENT`,0)) >= 0) THEN (CASE WHEN ((TO_DAYS(`income`.`hire_date`) - TO_DAYS(`lrp`.`PLAN_DATE`)) < 0) THEN 0 ELSE (TO_DAYS(`income`.`hire_date`) - TO_DAYS(`lrp`.`PLAN_DATE`)) END) ELSE (TO_DAYS(DATE_FORMAT(SYSDATE(),'%Y/%m/%d')) - TO_DAYS(`lrp`.`PLAN_DATE`)) END) AS `Overdue_days`,
(CASE WHEN ((IFNULL(`income`.`fact_rent`,0) - IFNULL(`lrp`.`RENT`,0)) >= 0) THEN '已结清' ELSE '未结清' END) AS `PLAN_STATUS`,
SYSDATE() AS inputtime
FROM (`apzl`.`lc_rent_plan` `lrp`
LEFT JOIN (SELECT
`apzl`.`lc_rent_income`.`PAYMENT_NUMBER` AS `payment_number`,
`apzl`.`lc_rent_income`.`PLAN_LIST` AS `plan_list`,
MAX(`apzl`.`lc_rent_income`.`HIRE_DATE`) AS `hire_date`,
IFNULL(SUM(`apzl`.`lc_rent_income`.`RENT`),0) AS `fact_rent`,
IFNULL(SUM(`apzl`.`lc_rent_income`.`CORPUS`),0) AS `fact_corpus`,
IFNULL(SUM(`apzl`.`lc_rent_income`.`INTEREST`),0) AS `fact_interest`,
IFNULL(SUM(`apzl`.`lc_rent_income`.`PENALTY`),0) AS `fact_penalty`
FROM `apzl`.`lc_rent_income`
WHERE (`apzl`.`lc_rent_income`.`PAYMENT_NUMBER` IS NOT NULL)
GROUP BY `apzl`.`lc_rent_income`.`PAYMENT_NUMBER`,`apzl`.`lc_rent_income`.`PLAN_LIST`) `income`
ON (((`lrp`.`PAYMENT_NUMBER` = `income`.`payment_number`)
AND (`lrp`.`PLAN_LIST` = `income`.`plan_list`)))
LEFT JOIN lb_contract_info lci ON lci.id=lrp.contract_id)
WHERE (lci.businesstype='1' AND (`lrp`.`PAYMENT_NUMBER` IS NOT NULL)
AND (`lrp`.`PLAN_DATE` <= CONVERT(DATE_FORMAT(SYSDATE(),'%Y/%m/%d')USING gbk)))
ORDER BY `lrp`.`PAYMENT_NUMBER`,`lrp`.`PLAN_LIST`)$$
DELIMITER ;