71 lines
4.9 KiB
SQL
71 lines
4.9 KiB
SQL
create view vi_contract_penalty as SELECT L.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
|
L.PLAN_LIST AS PLAN_LIST,
|
|
L.PLAN_DATE AS PLAN_DATE,
|
|
round(sum((CASE
|
|
WHEN ((str_to_date(L.PLAN_DATE, '%Y/%m/%d') + C.ATTR_VALUE) <= if((LL.HIRE_DATE > curdate()), curdate(), LL.HIRE_DATE)) THEN (
|
|
((LCC.PENA_RATE / 10000) *
|
|
(to_days(if((LL.HIRE_DATE > curdate()), curdate(), LL.HIRE_DATE)) - to_days(str_to_date(L.PLAN_DATE, '%Y/%m/%d')))) *
|
|
ifnull(LL.RENT, 0))
|
|
ELSE 0 END)), 2) AS PLAN_PENALTY,
|
|
round(sum((ifnull(LL.PENALTY, 0) + ifnull(LL.PENALTY_ADJUST, 0))), 2) AS INCOME_PENALTY,
|
|
round((sum((CASE
|
|
WHEN ((str_to_date(L.PLAN_DATE, '%Y/%m/%d') + C.ATTR_VALUE) <= if((LL.HIRE_DATE > curdate()), curdate(), LL.HIRE_DATE)) THEN (
|
|
((LCC.PENA_RATE / 10000) *
|
|
(to_days(if((LL.HIRE_DATE > curdate()), curdate(), LL.HIRE_DATE)) - to_days(str_to_date(L.PLAN_DATE, '%Y/%m/%d')))) *
|
|
ifnull(LL.RENT, 0))
|
|
ELSE 0 END)) - sum((ifnull(LL.PENALTY, 0) + ifnull(LL.PENALTY_ADJUST, 0)))), 2) AS PENALTY
|
|
FROM ((((APZL.LC_CALC_CONDITION LCC LEFT JOIN APZL.LC_CALC_CONDITION_STATUS LCCS ON ((LCC.PAYMENT_NUMBER = LCCS.PAYMENT_NUMBER))) LEFT JOIN APZL.CONFIGURATE C ON (((1 = 1) AND (C.ATTR_ID = '免罚息天数配置') AND (C.FIELD1 = '汽车')))) LEFT JOIN APZL.LC_RENT_PLAN L ON ((LCCS.PAYMENT_NUMBER = L.PAYMENT_NUMBER)))
|
|
LEFT JOIN (
|
|
SELECT LRI.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
|
LRI.PLAN_LIST AS PLAN_LIST,
|
|
LRI.RENT AS RENT,
|
|
LRI.PENALTY AS PENALTY,
|
|
LRI.PENALTY_ADJUST AS PENALTY_ADJUST,
|
|
str_to_date(LRI.HIRE_DATE, '%Y/%m/%d') AS HIRE_DATE
|
|
FROM APZL.LC_RENT_INCOME LRI
|
|
WHERE (LRI.ROLL_BACK = '0')
|
|
UNION ALL
|
|
SELECT LRIT.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
|
LRIT.PLAN_LIST AS PLAN_LIST,
|
|
LRIT.RENT AS RENT,
|
|
LRIT.PENALTY AS PENALTY,
|
|
LRIT.PENALTY_ADJUST AS PENALTY_ADJUST,
|
|
str_to_date(LRIT.HIRE_DATE, '%Y/%m/%d') AS HIRE_DATE
|
|
FROM APZL.LC_RENT_INCOME_TEMP LRIT
|
|
WHERE ((LRIT.ROLL_BACK = '0') AND (LRIT.IS_FLOWING = '0'))
|
|
UNION ALL
|
|
SELECT LRP.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
|
LRP.PLAN_LIST AS PLAN_LIST,
|
|
((LRP.RENT - ifnull(LR.SRENT, 0)) - ifnull(LRT.SRENT, 0)) AS RENT,
|
|
0 AS `0`,
|
|
0 AS `0`,
|
|
curdate() AS HIRE_DATE
|
|
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,
|
|
sum(APZL.LC_RENT_INCOME.RENT) AS SRENT
|
|
FROM APZL.LC_RENT_INCOME
|
|
WHERE (APZL.LC_RENT_INCOME.ROLL_BACK = '0')
|
|
GROUP BY APZL.LC_RENT_INCOME.PAYMENT_NUMBER, APZL.LC_RENT_INCOME.PLAN_LIST
|
|
) LR ON (((LR.PAYMENT_NUMBER = LRP.PAYMENT_NUMBER) AND (LR.PLAN_LIST = LRP.PLAN_LIST))))
|
|
LEFT JOIN (
|
|
SELECT APZL.LC_RENT_INCOME_TEMP.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
|
APZL.LC_RENT_INCOME_TEMP.PLAN_LIST AS PLAN_LIST,
|
|
sum(APZL.LC_RENT_INCOME_TEMP.RENT) AS SRENT
|
|
FROM APZL.LC_RENT_INCOME_TEMP
|
|
WHERE ((APZL.LC_RENT_INCOME_TEMP.ROLL_BACK = '0') AND (APZL.LC_RENT_INCOME_TEMP.IS_FLOWING = '0'))
|
|
GROUP BY APZL.LC_RENT_INCOME_TEMP.PAYMENT_NUMBER, APZL.LC_RENT_INCOME_TEMP.PLAN_LIST
|
|
) LRT ON (((LRT.PAYMENT_NUMBER = LRP.PAYMENT_NUMBER) AND (LRT.PLAN_LIST = LRP.PLAN_LIST))))
|
|
WHERE (((LRP.RENT - ifnull(LR.SRENT, 0)) - ifnull(LRT.SRENT, 0)) > 0)
|
|
) LL ON (((LL.PAYMENT_NUMBER = L.PAYMENT_NUMBER) AND (LL.PLAN_LIST = L.PLAN_LIST))))
|
|
WHERE ((LCCS.PLAN_STATUS = '31') AND (L.PAYMENT_NUMBER IS NOT NULL))
|
|
GROUP BY L.PAYMENT_NUMBER, L.PLAN_LIST, L.PLAN_DATE
|
|
ORDER BY L.PAYMENT_NUMBER, L.PLAN_LIST;
|
|
|
|
-- comment on column vi_contract_penalty.PAYMENT_NUMBER not supported: 投放编号
|
|
|
|
-- comment on column vi_contract_penalty.PLAN_LIST not supported: 期次
|
|
|
|
-- comment on column vi_contract_penalty.PLAN_DATE not supported: 计划日期
|
|
|