酱酒计划执行表数据集优化

This commit is contained in:
yangkunan 2024-11-27 17:56:20 +08:00
parent 398d45ee49
commit 3f3143cf8a

View File

@ -12,124 +12,117 @@
-- 订单预占
-- 合同约定
select
a.year -- 年度
,a.month -- 月度
,a.deal_code -- 主经销商编码
,a.deal_name -- 主经销商名称
,a.src_deal_code -- 子经销商编码
,a.src_deal_name -- 子经销商名称
,d.fist_dept_code as bu_code -- 事业部编码
,d.secd_dept_code as region_code -- 大区编码
,d.secd_dept_name as region_name -- 大区名称
,a.plan_type -- 计划类型
,a.plan_item -- 计划项目
,a.plan_pi_name -- 计划品项
-- 月份的
,a.m_plan_in_num AS m_plan_in_num -- 计划内瓶数
,a.m_plan_in_pack AS m_plan_in_pack -- 计划内件数
,a.m_plan_in_ton AS m_plan_in_ton -- 计划内吨数
,a.m_plan_in_amt / 10000 AS m_plan_in_amt -- 计划内金额
,a.m_plan_out_num AS m_plan_out_num -- 计划外瓶数
,a.m_plan_out_pack AS m_plan_out_pack -- 计划外件数
,a.m_plan_out_ton AS m_plan_out_ton-- 计划外吨数
,a.m_plan_out_amt / 10000 AS m_plan_out_amt -- 计划外金额
a.deal_code -- 主经销商编码
,a.deal_name -- 主经销商名称
,a.src_deal_code -- 子经销商编码
,a.src_deal_name -- 子经销商名称
,a.plan_type -- 计划类型
,a.plan_pi_name -- 计划品项
-- 月份的
,SUM(a.m_plan_in_num ) AS m_plan_in_num -- 计划内瓶数
,SUM(a.m_plan_in_pack) AS m_plan_in_pack -- 计划内件数
,SUM(a.m_plan_in_ton ) AS m_plan_in_ton -- 计划内吨数
,SUM(a.m_plan_in_amt) / 10000 AS m_plan_in_amt -- 计划内金额
,SUM(a.m_plan_out_num) AS m_plan_out_num -- 计划外瓶数
,SUM(a.m_plan_out_pack) AS m_plan_out_pack -- 计划外件数
,SUM(a.m_plan_out_ton) AS m_plan_out_ton-- 计划外吨数
,SUM(a.m_plan_out_amt) / 10000 AS m_plan_out_amt -- 计划外金额
-- 合同约定
,a.ct_plan_in_num AS ct_plan_in_num -- 合同约定计划内瓶数
,a.ct_plan_in_pack AS ct_plan_in_pack -- 合同约定计划内件数
,a.ct_plan_in_ton AS ct_plan_in_ton -- 合同约定计划内吨数
,a.ct_plan_in_amt / 10000 AS ct_plan_in_amt -- 合同约定计划内金额
,a.ct_plan_out_num AS ct_plan_out_num -- 合同约定计划外瓶数
,a.ct_plan_out_pack AS ct_plan_out_pack -- 合同约定计划外件数
,a.ct_plan_out_ton AS ct_plan_out_ton -- 合同约定计划外吨数
,a.ct_plan_out_amt / 10000 AS ct_plan_out_amt -- 合同约定计划外金额
,SUM(a.ct_plan_in_num ) AS ct_plan_in_num -- 合同约定计划内瓶数
,SUM(a.ct_plan_in_pack ) AS ct_plan_in_pack -- 合同约定计划内件数
,SUM(a.ct_plan_in_ton ) AS ct_plan_in_ton -- 合同约定计划内吨数
,SUM(a.ct_plan_in_amt ) / 10000 AS ct_plan_in_amt -- 合同约定计划内金额
,SUM(a.ct_plan_out_num ) AS ct_plan_out_num -- 合同约定计划外瓶数
,SUM(a.ct_plan_out_pack) AS ct_plan_out_pack -- 合同约定计划外件数
,SUM(a.ct_plan_out_ton ) AS ct_plan_out_ton -- 合同约定计划外吨数
,SUM(a.ct_plan_out_amt ) / 10000 AS ct_plan_out_amt -- 合同约定计划外金额
-- 增加计划
,a.add_plan_in_num AS add_plan_in_num -- 增加计划内瓶数
,a.add_plan_in_pack AS add_plan_in_pack -- 增加计划内件数
,a.add_plan_in_ton AS add_plan_in_ton -- 增加计划内吨数
,a.add_plan_in_amt / 10000 AS add_plan_in_amt-- 增加计划内金额
,a.add_plan_out_num AS add_plan_out_num -- 增加计划外瓶数
,a.add_plan_out_pack AS add_plan_out_pack -- 增加计划外件数
,a.add_plan_out_ton AS add_plan_out_ton -- 增加计划外吨数
,a.add_plan_out_amt / 10000 ASadd_plan_out_amt -- 增加计划外金额
,SUM(a.add_plan_in_num ) AS add_plan_in_num -- 增加计划内瓶数
,SUM(a.add_plan_in_pack) AS add_plan_in_pack -- 增加计划内件数
,SUM(a.add_plan_in_ton ) AS add_plan_in_ton -- 增加计划内吨数
,SUM(a.add_plan_in_amt )/ 10000 AS add_plan_in_amt-- 增加计划内金额
,SUM(a.add_plan_out_num ) AS add_plan_out_num -- 增加计划外瓶数
,SUM(a.add_plan_out_pack) AS add_plan_out_pack -- 增加计划外件数
,SUM(a.add_plan_out_ton ) AS add_plan_out_ton -- 增加计划外吨数
,SUM(a.add_plan_out_amt ) / 10000 ASadd_plan_out_amt -- 增加计划外金额
-- 减少计划
,a.cut_plan_in_num AS cut_plan_in_num -- 减少计划内瓶数
,a.cut_plan_in_pack AS cut_plan_in_pack -- 减少计划内件数
,a.cut_plan_in_ton AS cut_plan_in_ton -- 减少计划内吨数
,a.cut_plan_in_amt / 10000 AS cut_plan_in_amt-- 减少计划内金额
,a.cut_plan_out_num AS cut_plan_out_num -- 减少计划外瓶数
,a.cut_plan_out_park AS cut_plan_out_park -- 减少计划外件数
,a.cut_plan_out_ton AS cut_plan_out_ton -- 减少计划外吨数
,a.cut_plan_out_amt / 10000 AS cut_plan_out_amt -- 减少加计划外金额
,SUM(a.cut_plan_in_num ) AS cut_plan_in_num -- 减少计划内瓶数
,SUM(a.cut_plan_in_pack ) AS cut_plan_in_pack -- 减少计划内件数
,SUM(a.cut_plan_in_ton ) AS cut_plan_in_ton -- 减少计划内吨数
,SUM(a.cut_plan_in_amt ) / 10000 AS cut_plan_in_amt-- 减少计划内金额
,SUM(a.cut_plan_out_num ) AS cut_plan_out_num -- 减少计划外瓶数
,SUM(a.cut_plan_out_park ) AS cut_plan_out_park -- 减少计划外件数
,SUM(a.cut_plan_out_ton ) AS cut_plan_out_ton -- 减少计划外吨数
,SUM(a.cut_plan_out_amt) / 10000 AS cut_plan_out_amt -- 减少加计划外金额
from
(
(
SELECT
-- 维度
-- 维度
year -- 年度
,month -- 月度
,deal_code -- 主经销商编码
,deal_name -- 主经销商名称
,src_deal_code -- 子经销商编码
,src_deal_name -- 子经销商名称
,plan_type -- 计划类型
,plan_item -- 计划项目
,plan_pi_name -- 计划品项
,city_unit_code
,plan_pi_code -- 计划品相编码
-- 月份的
,CASE WHEN plan_item = '订单执行' THEN plan_in_num ELSE 0 END AS m_plan_in_num -- 计划内瓶数
,CASE WHEN plan_item = '订单执行' THEN plan_in_pack ELSE 0 END AS m_plan_in_pack -- 计划内件数
,CASE WHEN plan_item = '订单执行' THEN plan_in_ton ELSE 0 END AS m_plan_in_ton -- 计划内吨数
,CASE WHEN plan_item = '订单执行' THEN plan_in_amt ELSE 0 END AS m_plan_in_amt -- 计划内金额
,CASE WHEN plan_item = '订单执行' THEN plan_out_num ELSE 0 END AS m_plan_out_num -- 计划外瓶数
,CASE WHEN plan_item = '订单执行' THEN plan_out_pack ELSE 0 END AS m_plan_out_pack -- 计划外件数
,CASE WHEN plan_item = '订单执行' THEN plan_out_ton ELSE 0 END AS m_plan_out_ton -- 计划外吨数
,CASE WHEN plan_item = '订单执行' THEN plan_out_amt ELSE 0 END AS m_plan_out_amt -- 计划外金额
-- 合同约定
,CASE WHEN plan_item = '合同约定' THEN plan_in_num ELSE 0 END AS ct_plan_in_num -- 合同约定计划内瓶数
,CASE WHEN plan_item = '合同约定' THEN plan_in_pack ELSE 0 END AS ct_plan_in_pack -- 合同约定计划内件数
,CASE WHEN plan_item = '合同约定' THEN plan_in_ton ELSE 0 END AS ct_plan_in_ton -- 合同约定计划内吨数
,CASE WHEN plan_item = '合同约定' THEN plan_in_amt ELSE 0 END AS ct_plan_in_amt -- 合同约定计划内金额
,CASE WHEN plan_item = '合同约定' THEN plan_out_num ELSE 0 END AS ct_plan_out_num -- 合同约定计划外瓶数
,CASE WHEN plan_item = '合同约定' THEN plan_out_pack ELSE 0 END AS ct_plan_out_pack -- 合同约定计划外件数
,CASE WHEN plan_item = '合同约定' THEN plan_out_ton ELSE 0 END AS ct_plan_out_ton -- 合同约定计划外吨数
,CASE WHEN plan_item = '合同约定' THEN plan_out_amt ELSE 0 END AS ct_plan_out_amt -- 合同约定计划外金额
,month -- 月度
,deal_code -- 主经销商编码
,deal_name -- 主经销商名称
,src_deal_code -- 子经销商编码
,src_deal_name -- 子经销商名称
,plan_type -- 计划类型
,plan_item -- 计划项目
,plan_pi_name -- 计划品项
,city_unit_code
,plan_pi_code -- 计划品相编码
-- 月份的
,CASE WHEN plan_item = '订单执行' THEN plan_in_num ELSE 0 END AS m_plan_in_num -- 计划内瓶数
,CASE WHEN plan_item = '订单执行' THEN plan_in_pack ELSE 0 END AS m_plan_in_pack -- 计划内件数
,CASE WHEN plan_item = '订单执行' THEN plan_in_ton ELSE 0 END AS m_plan_in_ton -- 计划内吨数
,CASE WHEN plan_item = '订单执行' THEN plan_in_amt ELSE 0 END AS m_plan_in_amt -- 计划内金额
,CASE WHEN plan_item = '订单执行' THEN plan_out_num ELSE 0 END AS m_plan_out_num -- 计划外瓶数
,CASE WHEN plan_item = '订单执行' THEN plan_out_pack ELSE 0 END AS m_plan_out_pack -- 计划外件数
,CASE WHEN plan_item = '订单执行' THEN plan_out_ton ELSE 0 END AS m_plan_out_ton -- 计划外吨数
,CASE WHEN plan_item = '订单执行' THEN plan_out_amt ELSE 0 END AS m_plan_out_amt -- 计划外金额
-- 合同约定
,CASE WHEN plan_item = '合同约定' THEN plan_in_num ELSE 0 END AS ct_plan_in_num -- 合同约定计划内瓶数
,CASE WHEN plan_item = '合同约定' THEN plan_in_pack ELSE 0 END AS ct_plan_in_pack -- 合同约定计划内件数
,CASE WHEN plan_item = '合同约定' THEN plan_in_ton ELSE 0 END AS ct_plan_in_ton -- 合同约定计划内吨数
,CASE WHEN plan_item = '合同约定' THEN plan_in_amt ELSE 0 END AS ct_plan_in_amt -- 合同约定计划内金额
,CASE WHEN plan_item = '合同约定' THEN plan_out_num ELSE 0 END AS ct_plan_out_num -- 合同约定计划外瓶数
,CASE WHEN plan_item = '合同约定' THEN plan_out_pack ELSE 0 END AS ct_plan_out_pack -- 合同约定计划外件数
,CASE WHEN plan_item = '合同约定' THEN plan_out_ton ELSE 0 END AS ct_plan_out_ton -- 合同约定计划外吨数
,CASE WHEN plan_item = '合同约定' THEN plan_out_amt ELSE 0 END AS ct_plan_out_amt -- 合同约定计划外金额
-- 增加计划
,CASE WHEN (plan_item = '计划调整' AND plan_in_num > 0) THEN plan_in_num ELSE 0 END AS add_plan_in_num -- 增加计划内瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_in_pack > 0) THEN plan_in_pack ELSE 0 END AS add_plan_in_pack -- 增加计划内件数
,CASE WHEN (plan_item = '计划调整' AND plan_in_ton > 0) THEN plan_in_ton ELSE 0 END AS add_plan_in_ton -- 增加计划内吨数
,CASE WHEN (plan_item = '计划调整' AND plan_in_amt > 0) THEN plan_in_amt ELSE 0 END AS add_plan_in_amt -- 增加计划内金额
,CASE WHEN (plan_item = '计划调整' AND plan_out_num > 0) THEN plan_out_num ELSE 0 END AS add_plan_out_num -- 增加计划外瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_out_pack > 0) THEN plan_out_pack ELSE 0 END AS add_plan_out_pack -- 增加计划外件数
,CASE WHEN (plan_item = '计划调整' AND plan_out_ton > 0) THEN plan_out_ton ELSE 0 END AS add_plan_out_ton -- 增加计划外吨数
,CASE WHEN (plan_item = '计划调整' AND plan_out_amt > 0) THEN plan_out_amt ELSE 0 END AS add_plan_out_amt -- 增加计划外金额
-- 增加计划
,CASE WHEN (plan_item = '计划调整' AND plan_in_num > 0) THEN plan_in_num ELSE 0 END AS add_plan_in_num -- 增加计划内瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_in_pack > 0) THEN plan_in_pack ELSE 0 END AS add_plan_in_pack -- 增加计划内件数
,CASE WHEN (plan_item = '计划调整' AND plan_in_ton > 0) THEN plan_in_ton ELSE 0 END AS add_plan_in_ton -- 增加计划内吨数
,CASE WHEN (plan_item = '计划调整' AND plan_in_amt > 0) THEN plan_in_amt ELSE 0 END AS add_plan_in_amt -- 增加计划内金额
,CASE WHEN (plan_item = '计划调整' AND plan_out_num > 0) THEN plan_out_num ELSE 0 END AS add_plan_out_num -- 增加计划外瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_out_pack > 0) THEN plan_out_pack ELSE 0 END AS add_plan_out_pack -- 增加计划外件数
,CASE WHEN (plan_item = '计划调整' AND plan_out_ton > 0) THEN plan_out_ton ELSE 0 END AS add_plan_out_ton -- 增加计划外吨数
,CASE WHEN (plan_item = '计划调整' AND plan_out_amt > 0) THEN plan_out_amt ELSE 0 END AS add_plan_out_amt -- 增加计划外金额
-- 减少计划
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_num ELSE 0 END AS cut_plan_in_num -- 减少计划内瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_pack ELSE 0 END AS cut_plan_in_pack -- 减少计划内件数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_ton ELSE 0 END AS cut_plan_in_ton -- 减少计划内吨数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_amt ELSE 0 END AS cut_plan_in_amt -- 减少计划内金额
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_num ELSE 0 END AS cut_plan_out_num -- 减少计划外瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_pack ELSE 0 END AS cut_plan_out_park -- 减少计划外件数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_ton ELSE 0 END AS cut_plan_out_ton -- 减少计划外吨数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_amt ELSE 0 END AS cut_plan_out_amt -- 减少加计划外金额
-- 减少计划
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_num ELSE 0 END AS cut_plan_in_num -- 减少计划内瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_pack ELSE 0 END AS cut_plan_in_pack -- 减少计划内件数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_ton ELSE 0 END AS cut_plan_in_ton -- 减少计划内吨数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_in_amt ELSE 0 END AS cut_plan_in_amt -- 减少计划内金额
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_num ELSE 0 END AS cut_plan_out_num -- 减少计划外瓶数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_pack ELSE 0 END AS cut_plan_out_park -- 减少计划外件数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_ton ELSE 0 END AS cut_plan_out_ton -- 减少计划外吨数
,CASE WHEN (plan_item = '计划调整' AND plan_in_num < 0) THEN plan_out_amt ELSE 0 END AS cut_plan_out_amt -- 减少加计划外金额
FROM dm.dm_cus_flavour_plan_executed
WHERE year = '${sStart_year}'
-- 计划类型
${if(len(sPlan_type) == 0,"","and plan_type IN ('"+sPlan_type+"')")}
-- 计划类型
${if(len(sPlan_type) == 0,"","and plan_type IN ('"+sPlan_type+"')")}
-- 计划品项
${if(len(sPlan_pi_name) == 0,"","and plan_pi_name IN ('"+sPlan_pi_name+"')")}
-- 经销商
${if(sSub_main == '2',if(len(sDeal) == 0,"","and deal_code IN ('"+ sDeal+"')"),if(len(sDeal) == 0,"","and src_deal_code IN ('"+ sDeal +"')"))}
)a
left join dwr.dim_department d on a.city_unit_code=d.dept_code
left join
(
select
${if(len(sPlan_pi_name) == 0,"","and plan_pi_name IN ('"+sPlan_pi_name+"')")}
-- 经销商
${if(sSub_main == '2',if(len(sDeal) == 0,"","and deal_code IN ('"+ sDeal+"')"),if(len(sDeal) == 0,"","and src_deal_code IN ('"+ sDeal +"')"))}
)a
left join dwr.dim_department d on a.city_unit_code=d.dept_code
left join
(
select
bu_code -- 事业部编码
,deal_code -- 经销商编码
,'1' as is_suspend
@ -137,15 +130,15 @@ left join
where bill_type='终止' -- 单据类型
group by bu_code,deal_code
having max(bill_date)<=sysdate -- 单据时间
) stp
on a.src_deal_code=stp.deal_code
and d.fist_dept_code=stp.bu_code
) stp
on a.src_deal_code=stp.deal_code
and d.fist_dept_code=stp.bu_code
-- 排序
left join sdi_xdata.mdm_dim_sorted st on d.secd_dept_code=st.sorted_value and st.sorted_type='大区'
left join sdi_xdata.mdm_dim_sorted st on d.secd_dept_code=st.sorted_value and st.sorted_type='大区'
-- 权限控制
where exists (
select
1
select
1
from
dm.dm_bi_user_permisson
where
@ -160,37 +153,23 @@ where exists (
)
)
-- 事业部
${if(len(sBu) == 0,"","and stp.bu_code IN ('"+sBu+"')")}
${if(len(sBu) == 0,"","and stp.bu_code IN ('"+sBu+"')")}
-- 经销商是否终止
${if(len(sIs_stop_deal) == 0,"","and nvl(stp.is_suspend,'0') = '"+sIs_stop_deal+"'")}
${if(len(sIs_stop_deal) == 0,"","and nvl(stp.is_suspend,'0') = '"+sIs_stop_deal+"'")}
GROUP BY
a.deal_code -- 主经销商编码
,a.deal_name -- 主经销商名称
,a.src_deal_code -- 子经销商编码
,a.src_deal_name -- 子经销商名称
,a.plan_type -- 计划类型
,a.plan_pi_name -- 计划品项
,nvl(st.sorted_no,99)
ORDER BY nvl(st.sorted_no,99)
limit ${sPage_rows} offset (${pJump_page}-1)*${sPage_rows}
;
-- 计划类型
SELECT DISTINCT plan_type FROM dm.dm_cus_flavour_plan_executed
SELECT DISTINCT plan_item FROM dm.dm_cus_flavour_plan_executed
-- 计划品项
SELECT
DISTINCT
plan_pi_name
FROM dm.dm_cus_flavour_plan_executed
WHERE 1=1
-- 计划类型
${if(len(sPlantype) == 0,"","and plan_type IN ('"+sPlantype+"')")}
-- 子主经销商
${if(sDeal == 1,if(len(sDealName) == 0,"","and deal_code IN ('"+ sDealName+"')"),if(len(sDealName) == 0,"","and src_deal_code IN ('"+ sDealName +"')"))}
SELECT CONCAT('数据更新时间:',LEFT(MAX(update_time),19)) AS update_time FROM dm.dm_cus_flavour_plan_executed