,T1.cost_code AS cost_code -- 成本类型编码: LC:行政成本 AC:人力成本
,T1.cost_name AS cost_name -- 成本类型名称
,T1.dimsubjectcode AS dimsubjectcode -- 组织机构编码
,T1.dimsubjectname AS dimsubjectname -- 组织机构名称
,T1.totalcode AS totalcode -- 组织机构层级编码
,T1.dimaccountcode AS dimaccountcode -- 预算科目编码
,T1.dimaccountname AS dimaccountname -- 预算科目名称
,T1.buget AS buget -- 预算金额
,T1.occ AS occ -- 已占用金额
,T1.realfee AS realfee -- 已使用金额
,T1.available AS available -- 剩余可用金额
,T1.budgetfee_rate AS budgetfee_rate -- 预算执行率
,T1.originalcurrency AS originalcurrency -- 调整金额
,T1.target_fee AS target_fee -- 目标值
,T1.actual_fee AS actual_fee -- 实际值
,ROUND((T1.target_fee - T1.actual_fee),2) AS diff_amount -- 差额
,case when T1.target_fee = 0 then '0%' else concat(ROUND((T1.actual_fee / T1.target_fee)*100,2),'%') end AS implementation_rate -- 执行率
FROM
(
SELECT
A.yearname AS yearname -- 年
,A.monthname AS monthname -- 月
,'LC' AS cost_code -- 成本类型编码: LC:行政成本 AC:人力成本
,'行政成本' AS cost_name -- 成本类型名称
,A.dimsubjectcode AS dimsubjectcode -- 组织机构编码
,A.dimsubjectname AS dimsubjectname -- 组织机构名称
,A.totalcode AS totalcode -- 组织机构层级编码
,A.dimaccountcode AS dimaccountcode -- 预算科目编码
,A.dimaccountname AS dimaccountname -- 预算科目名称
,A.buget AS buget -- 预算金额
,A.occ AS occ -- 已占用金额
,A.realfee AS realfee -- 已使用金额
,A.available AS available -- 剩余可用金额
,A.budgetfee_rate AS budgetfee_rate -- 预算执行率
,COALESCE(B.originalcurrency,0) AS originalcurrency -- 调整金额
,ROUND((A.buget - COALESCE(B.originalcurrency,0)),2) AS target_fee -- 目标值
,A.realfee AS actual_fee -- 实际值
-- ,'' AS diff_amount -- 差额
-- ,'' AS implementation_rate -- 执行率
FROM
(
SELECT
dimaccountcode -- 预算科目编码
,dimaccountname -- 预算科目名称
,dimsubjectcode -- 组织机构编码
,dimsubjectname -- 组织机构名称
,yearname -- 年
,totalcode -- 组织机构层级编码
,monthname -- 月
,buget -- 预算金额
,occ -- 已占用金额
,realfee -- 已使用金额
,available -- 剩余可用金额
,budgetfee_rate -- 预算执行率
FROM dw.dwd_cost_budget_data_d -- 预算金额明细表
WHERE dimaccountcode IN('WY0402','WY040201','WY040202','WY040203','WY040204','WY040205','WY040206','WY040207','WY040208','WY040209','WY040210','WY040211','WY040212','WY040213','WY040214','WY040215','WY040216')
)A
LEFT JOIN
(
SELECT
year -- 年
,month -- 月
,dimsubjectcode -- 调整组织机构编码
,dimaccountcode -- 调整预算科目编码
,originalcurrency -- 调整金额
FROM dw.dwd_cost_adjust_data_d -- 调整金额明细表
WHERE dimaccountcode IN('WY0402','WY040201','WY040202','WY040203','WY040204','WY040205','WY040206','WY040207','WY040208','WY040209','WY040210','WY040211','WY040212','WY040213','WY040214','WY040215','WY040216')
)B
ON A.dimaccountcode = B.dimaccountcode
AND A.dimsubjectcode = B.dimsubjectcode
AND A.yearname = B.year
AND A.monthname = B.month
UNION ALL
SELECT
A.yearname AS yearname -- 年
,A.monthname AS monthname -- 月
,'AC' AS cost_code -- 成本类型编码: LC:行政成本 AC:人力成本
,'人力成本' AS cost_name -- 成本类型名称
,A.dimsubjectcode AS dimsubjectcode -- 组织机构编码
,A.dimsubjectname AS dimsubjectname -- 组织机构名称
,A.totalcode AS totalcode -- 组织机构层级编码
,A.dimaccountcode AS dimaccountcode -- 预算科目编码
,A.dimaccountname AS dimaccountname -- 预算科目名称
,A.buget AS buget -- 预算金额
,A.occ AS occ -- 已占用金额
,A.realfee AS realfee -- 已使用金额
,A.available AS available -- 剩余可用金额
,A.budgetfee_rate AS budgetfee_rate -- 预算执行率
,COALESCE(B.originalcurrency,0) AS originalcurrency -- 调整金额
,ROUND((A.buget - COALESCE(B.originalcurrency,0)),2) AS target_fee -- 目标值
,A.realfee AS actual_fee -- 实际值
-- ,'' AS diff_amount -- 差额
-- ,'' AS implementation_rate -- 执行率
FROM
(
SELECT
dimaccountcode -- 预算科目编码
,dimaccountname -- 预算科目名称
,dimsubjectcode -- 组织机构编码
,dimsubjectname -- 组织机构名称
,yearname -- 年
,totalcode -- 组织机构层级编码
,monthname -- 月
,buget -- 预算金额
,occ -- 已占用金额
,realfee -- 已使用金额
,available -- 剩余可用金额
,budgetfee_rate -- 预算执行率
FROM dw.dwd_cost_budget_data_d -- 预算金额明细表
WHERE dimaccountcode IN('WY0401','WY040101','WY040102','WY040103','WY040104','WY040105','WY040106','WY040107','WY040108','WY040109','WY040110','WY040111','WY040112','WY040113','WY040114')
)A
LEFT JOIN
(
SELECT
year -- 年
,month -- 月
,dimsubjectcode -- 调整组织机构编码
,dimaccountcode -- 调整预算科目编码
,originalcurrency -- 调整金额
FROM dw.dwd_cost_adjust_data_d -- 调整金额明细表
WHERE dimaccountcode IN('WY0401','WY040101','WY040102','WY040103','WY040104','WY040105','WY040106','WY040107','WY040108','WY040109','WY040110','WY040111','WY040112','WY040113','WY040114')