leading-project/finereport/xiazuan/6_innovation/9_多径回款情况.sql

96 lines
3.0 KiB
MySQL
Raw Normal View History

2024-11-27 11:07:58 +08:00
-- 【1_report_多径回款情况】
SELECT
business_code -- 业务域code
,organ_code -- erp片区code
,organ_name -- erp片区名称
,comm_id -- 项目id
,comm_name -- 项目名称
,index_type -- 多经类别(社商/ 新零售、美居、附属资源/ 空间运营、资产运营/ 资产租售)
,index_receivable -- 应收值
,index_receipts -- 实收值
,index_not_receipts -- 未回款数
,collection_rate -- 回款率
FROM dw.ods_caiwu_profit
WHERE (index_receivable <> 0 OR index_receipts <> 0 OR index_not_receipts <> 0)
AND `year_month` = '${REPLACE(p_ym,"-","")}'
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
${IF(LEN(p_type)>0," AND index_type IN ('"+JOINARRAY(p_type,"','")+"')", "")}
-- 【2_业务条线】
SELECT
DISTINCT
index_type
FROM dw.ods_caiwu_profit
;
-- 【1_report_欠费下钻明细】
SELECT
A.OrganCode AS OrganCode -- 片区编码
,A.OrganName AS OrganName -- 片区名称
,A.CommID AS CommID -- 项目id
,A.CommName AS CommName -- 项目名称
,A.CustName AS CustName -- 客户姓名 商户
,SUM(A.recev_amount) AS recev_amount-- 应收金额
,A.AccountsDueDate AS AccountsDueDate -- 应收日期
,SUM(A.paid_amount) AS paid_amount -- 实收金额 回款金额
,SUM(A.recev_amount) - SUM(A.paid_amount) AS Arrears_amount -- 欠费金额
,IF(SUM(A.recev_amount) = 0,0,SUM(A.paid_amount) /SUM(A.recev_amount)) AS PAID_AMOUNT_RATE
FROM
(
SELECT
OrganCode -- 片区编码
,OrganName -- 片区名称
,CommID -- 项目id
,CommName -- 项目名称
,CustName -- 客户姓名 商户
,SUBSTR(AccountsDueDate,1,10) AS AccountsDueDate -- 应收日期
,CorpCostID
,CASE WHEN BussType IN('新增','删除') THEN DealAmount ELSE 0 END AS recev_amount -- 应收金额
,CASE WHEN BussType IN('实收','撤销实收') THEN DealAmount ELSE 0 END AS paid_amount -- 实收金额
FROM dw.ods_erp_tb_hspr_feesserial_${p_comm_id}_d
WHERE left(AccountsDueDate,7) = '${p_ym}'
${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
${if(left(fine_role,2)=="项目","and comm_name = '"+GETUSERDEPARTMENTS(3)+"'","")}
)A
JOIN
(
SELECT
a.CorpCostID
,a.CostName
FROM
(
select
CorpCostID
,CostCode
,CostName
from dw.dim_corp_cost_item_d -- 总部费用科目
where length(CostCode) != 4
) a
left join
(
select
CorpCostID
,CostCode
from dim_corp_cost_item_d
where length(CostCode) = 4
) b
on left(a.CostCode,4) = b.CostCode
where b.CostCode = '0007'
)B
ON A.CorpCostID = B.CorpCostID
GROUP BY
A.OrganCode
,A.OrganName
,A.CommID
,A.CommName
,A.CustName
,A.AccountsDueDate