维度表+销售业绩组合表数据集优化

This commit is contained in:
yangkunan 2024-09-30 16:57:39 +08:00
parent d99d7a4263
commit 93213cf1d8
7 changed files with 434 additions and 287 deletions

View File

@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<SqlCodeStyleSettings version="7">
<option name="KEYWORD_CASE" value="2" />
</SqlCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

View File

@ -4,6 +4,7 @@
<file url="file://$PROJECT_DIR$/BI/销售业绩/电商销售订单.sql" dialect="PostgreSQL" /> <file url="file://$PROJECT_DIR$/BI/销售业绩/电商销售订单.sql" dialect="PostgreSQL" />
<file url="file://$PROJECT_DIR$/BI/销售业绩/经销商出货.sql" dialect="PostgreSQL" /> <file url="file://$PROJECT_DIR$/BI/销售业绩/经销商出货.sql" dialect="PostgreSQL" />
<file url="file://$PROJECT_DIR$/FineReport/明细表/销售业绩组合统计表.sql" dialect="PostgreSQL" /> <file url="file://$PROJECT_DIR$/FineReport/明细表/销售业绩组合统计表.sql" dialect="PostgreSQL" />
<file url="file://$PROJECT_DIR$/FineReport/维度表/经销商维度表.sql" dialect="PostgreSQL" />
<file url="file://$PROJECT_DIR$/tianbao/产品档案填报.sql" dialect="PostgreSQL" /> <file url="file://$PROJECT_DIR$/tianbao/产品档案填报.sql" dialect="PostgreSQL" />
<file url="file://$PROJECT_DIR$/tianbao/基础指标填报表.sql" dialect="PostgreSQL" /> <file url="file://$PROJECT_DIR$/tianbao/基础指标填报表.sql" dialect="PostgreSQL" />
<file url="PROJECT" dialect="PostgreSQL" /> <file url="PROJECT" dialect="PostgreSQL" />

View File

@ -13,300 +13,360 @@
-- EXTRACT(YEAR FROM order_time) AS order_year -- 订单年度
-- ,EXTRACT(QUARTER FROM order_time) AS order_quar -- 订单季度
-- ,EXTRACT(MONTH FROM order_time) AS order_month -- 订单月份
-- ,TO_CHAR(order_time, 'YYYY-MM-DD') AS order_time -- 订单时间
-- ,EXTRACT(QUARTER FROM A.signed_date) AS ct_quar -- 合同季度
-- ,EXTRACT(MONTH FROM A.signed_date) AS ct_month -- 合同月份
-- ,TO_CHAR(A.signed_date, 'YYYY-MM-DD') AS signed_date -- 合同签订日期
-- EXTRACT(YEAR FROM bill_date) AS order_year -- 单据年度
-- ,EXTRACT(QUARTER FROM bill_date) AS order_quar -- 单据季度
-- ,EXTRACT(MONTH FROM bill_date) AS order_month -- 单据月份
-- ,TO_CHAR(bill_date, 'YYYY-MM-DD') AS order_time -- 单据时间
-- EXTRACT(YEAR FROM deli_time) AS order_year -- 发货年度
-- , EXTRACT(QUARTER FROM deli_time) AS order_quar -- 发货季度
-- , EXTRACT(MONTH FROM deli_time) AS order_month -- 发货月份
-- , TO_CHAR(deli_time, 'YYYY-MM-DD') AS order_time -- 发货时间
--
-- , CASE
-- WHEN stock_month IN ('01', '02', '03') THEN 1
-- WHEN stock_month IN ('04', '05', '06') THEN 2
-- WHEN stock_month IN ('07', '08', '09') THEN 3
-- WHEN stock_month IN ('10', '11', '12') THEN 4
-- END AS stock_quar
-- , stock_month AS stock_month
-- , CONCAT(stock_year, '-', stock_month, '-01') AS stock_date
--
--
-- 参数
-- 事业部 sBu
-- 事业部大区 sBuRegion
-- 办事处 sOffice
-- 城市单元 sCityUnit
-- 公司大区 sCompRegion
-- ${if(len(sCityUnit) == 0,"","and city_unit_code IN ('"+sBu+"')")}
-- 省 sProvince
-- 市 sCity
-- 区 sCounty
-- 产品线 sPl
-- 品项 sPi
-- 产品 sProduct
-- 经销商 sDealName
-- 子主经销商 sDeal
-- 开始时间 sStartDate
-- 结束时间 sEndDate
SELECT SELECT
T1.bu_name AS bu_name -- 事业部名称
,T1.region_name AS region_name -- 大区名称
,T1.office_name AS office_name -- 办事处名称
,T1.city_unit_name AS city_unit_name-- 城市单元名称
,T1.province_name AS province_name -- 省
,T1.city_name AS city_name -- 市
,T1.pl_name AS pl_name -- 产品线名称
,T1.pi_name AS pi_name -- 品项
,T1.product_name AS product_name -- 产品名称
,T1.deal_name AS deal_name -- 经销商名称
,T1.src_deal_name AS src_deal_name -- 子经销商名称
,SUM(T1.ct_amt ) AS ct_amt -- 合同金额
,SUM(T1.total_amt) AS total_amt -- 订单金额
,SUM(T1.clc_amt) AS clc_amt -- 回款金额
,SUM(T1.deli_amt) AS deli_amt -- 发货金额
,SUM(T1.ship_num) AS ship_num -- 发货件数
,SUM(T1.ship_botnum) AS ship_botnum -- 发货瓶数
,SUM(T1.real_amt) AS real_amt -- 实物库存
T1.bu_code AS bu_code -- 事业部编码
,T1.bu_name AS bu_name -- 事业部名称
,T1.region_code AS region_code -- 大区编码
,T1.region_name AS region_name -- 大区名称
,T1.office_code AS office_code -- 办事处编码
,T1.office_name AS office_name -- 办事处名称
,T1.city_unit_code AS city_unit_code -- 城市单元编码
,T1.city_unit_name AS city_unit_name -- 城市单元名称
,T1.province_name AS province_name -- 省
,T1.city_name AS city_name -- 市
,T1.pl_name AS pl_name -- 产品线名称
,T1.pi_name AS pi_name -- 品项
,T1.product_code AS product_code -- 产品编码
,T1.product_name AS product_name -- 产品名称
,T1.deal_code AS deal_code -- 经销商编码
,T1.deal_name AS deal_name -- 经销商名称
,T1.src_deal_code AS src_deal_code -- 子经销商编码
,T1.src_deal_name AS src_deal_name -- 子经销商名称
,T1.total_amt AS total_amt -- 订单金额
,T2.ct_amt AS ct_amt -- 合同金额
,T2.ship_amt AS ship_amt -- 出货金额
,T3.clc_amt AS clc_amt -- 回款金额
,T4.ship_num AS ship_num -- 发货件数
,T5.real_amt AS real_amt -- 实物库存金额
FROM FROM
( (
-- 销售订单(订单金额) -- 销售订单(订单金额)
SELECT SELECT
EXTRACT(YEAR FROM order_time) AS order_year -- 订单年度 bu_name -- 事业部名称
,EXTRACT(QUARTER FROM order_time) AS order_quar -- 订单季度 ,region_name -- 大区名称
,EXTRACT(MONTH FROM order_time) AS order_month -- 订单月份 ,office_name -- 办事处名称
,TO_CHAR(order_time, 'YYYY-MM-DD') AS order_time -- 订单时间 ,city_unit_name -- 城市单元名称
,bu_code -- 事业部编码 ,province_name -- 省
,bu_name -- 事业部名称 ,city_name -- 市
-- todo:事业部大区 ,pl_name -- 产品线名称
-- todo:公司大区 ,pi_name -- 品项
,region_code -- 大区编码 ,product_name -- 产品名称
,region_name -- 大区名称 ,deal_name -- 经销商名称
,office_code -- 办事处编码 ,src_deal_name -- 子经销商名称
,office_name -- 办事处名称 ,0 AS ct_amt -- 合同金额
,city_unit_code -- 城市单元编码 ,SUM(COALESCE(d_amt,0)) + SUM(COALESCE(e_amt,0)) + SUM(COALESCE(f_amt,0)) + SUM(COALESCE(fz_amt,0)) + SUM(COALESCE(q_amt,0)) AS total_amt -- 订单金额
,city_unit_name -- 城市单元名称 ,0 AS clc_amt -- 回款金额
,province_name -- 省 ,0 AS deli_amt -- 发货金额
,city_name -- 市 ,0 AS ship_num -- 发货件数
-- ,pl_code -- 产品线 ,0 AS ship_botnum -- 发货瓶数
,pl_name -- 产品线名称 ,0 AS real_amt -- 实物库存
,pi_name -- 品项 FROM dm.v_ag_sal_order -- 销售订单视图
,product_code -- 产品编码 WHERE 1 = 1
,product_name -- 产品名称 AND TO_CHAR(order_time, 'YYYY-MM-DD') >= '${sStartDate}'
,deal_code -- 经销商编码 AND TO_CHAR(order_time, 'YYYY-MM-DD') < '${sEndDate}'
,deal_name -- 经销商名称 -- 事业部
,src_deal_code -- 子经销商编码 ${if(len(sBu) == 0,"","and bu_code IN ('"+sBu+"')")}
,src_deal_name -- 子经销商名称 -- 大区
,SUM(COALESCE(d_amt,0)) + SUM(COALESCE(e_amt,0)) + SUM(COALESCE(f_amt,0)) + SUM(COALESCE(fz_amt,0)) + SUM(COALESCE(q_amt,0)) AS total_amt ${if(len(sCompRegion) == 0,"","and region_code IN ('"+ sCompRegion+"')")}
FROM dm.v_ag_sal_order -- 办事处
GROUP BY order_time, order_time, order_time, order_time, bu_code, bu_name, region_code, region_name, office_code, office_name, city_unit_code, city_unit_name, province_name, city_name, pl_name, pi_name, product_code, product_name, deal_code, deal_name, src_deal_code, src_deal_name ${if(len(sOffice) == 0,"","and office_code IN ('"+ sOffice+"')")}
)T1 -- 城市单元
LEFT JOIN ${if(len(sCityUnit) == 0,"","and city_unit_code IN ('"+ sCityUnit+"')")}
( -- 省
${if(len(sProvince) == 0,"","and province_name IN ('"+ sProvince+"')")}
-- 市
${if(len(sCity) == 0,"","and city_name IN ('"+ sCity+"')")}
-- 产品线
${if(len(sPl) == 0,"","and pl_name IN ('"+ sPl+"')")}
-- 品项
${if(len(sPi) == 0,"","and pi_name IN ('"+ sPi+"')")}
-- 子主经销商
${if(sDeal == 1,if(len(sDealName) == 0,"","and deal_code IN ('"+ sDealName+"')"),if(len(sDealName) == 0,"","and src_deal_code IN ('"+ sDealName +"')"))}
GROUP BY
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
UNION ALL
-- 合同汇总 -- 合同汇总
SELECT SELECT
A.ct_year AS ct_year -- 合同年度 bu_name -- 事业部名称
,EXTRACT(QUARTER FROM A.signed_date) AS ct_quar -- 合同季度 ,region_name -- 大区名称
,EXTRACT(MONTH FROM A.signed_date) AS ct_month -- 合同月份 ,office_name -- 办事处名称
,TO_CHAR(A.signed_date, 'YYYY-MM-DD') AS signed_date -- 合同签订日期 ,city_unit_name -- 城市单元名称
,A.bu_code AS bu_code -- 事业部编码 ,province_name -- 省
-- ,A.bu_name AS bu_name -- 事业部名称 ,city_name -- 市
,A.region_code AS region_code -- 大区编码 ,pl_name -- 产品线名称
-- ,A.region_name AS region_name -- 大区名称 ,pi_name -- 品项
,A.office_code AS office_code -- 办事处编码 ,product_name -- 产品名称
-- ,A.office_name AS office_name -- 办事处名称 ,deal_name -- 经销商名称
,A.city_unit_code AS city_unit_code -- 城市单元编码 ,src_deal_name -- 子经销商名称
-- ,A.city_unit_name AS city_unit_name -- 城市单元名称 ,sum(ct_amt) as ct_amt -- 合同金额
,A.province_name AS province_name -- 省 ,0 AS total_amt -- 订单金额
-- ,A.city_name AS city_name -- 市 ,0 AS clc_amt -- 回款金额
-- ,A.deal_province AS deal_province -- 经销区域-省 ,0 AS deli_amt -- 发货金额
-- ,A.deal_city AS deal_city -- 经销区域-市 ,0 AS ship_num -- 发货件数
--,A.deal_county AS deal_county -- 经销区域-县 ,0 AS ship_botnum-- 发货瓶数
,A.pl_code AS pl_code -- 产品线 ,0 AS real_amt -- 实物库存
,A.pl_name AS pl_name -- 产品线名称 FROM dm.v_ag_sal_contract -- 合同表 产品+合同ID
,A.pi_name AS pi_name -- 品项 WHERE 1 = 1
,A.product_code AS product_code -- 产品编码 AND TO_CHAR(signed_date, 'YYYY-MM-DD') >= '${sStartDate}'
,A.product_name AS product_name -- 产品名称 AND TO_CHAR(signed_date, 'YYYY-MM-DD') < '${sEndDate}'
,A.deal_code AS deal_code -- 经销商编码 -- 事业部
,A.deal_name AS deal_name -- 经销商名称 ${if(len(sBu) == 0,"","and bu_code IN ('"+sBu+"')")}
,A.src_deal_code AS src_deal_code -- 子经销商编码 -- 大区
,A.src_deal_name AS src_deal_name -- 子经销商名称 ${if(len(sCompRegion) == 0,"","and region_code IN ('"+ sCompRegion+"')")}
,SUM(A.ct_amt) AS ct_amt -- 合同金额 -- 办事处
,SUM(COALESCE(B.ship_amt,0)) AS ship_amt -- 出货金额 ${if(len(sOffice) == 0,"","and office_code IN ('"+ sOffice+"')")}
FROM -- 城市单元
( ${if(len(sCityUnit) == 0,"","and city_unit_code IN ('"+ sCityUnit+"')")}
SELECT -- 省
ct_code -- 合同编码 ${if(len(sProvince) == 0,"","and province_name IN ('"+ sProvince+"')")}
,ct_amt -- 合同金额 -- 市
,ct_year -- 合同年度 ${if(len(sCity) == 0,"","and city_name IN ('"+ sCity+"')")}
,bu_code -- 事业部编码 -- 产品线
,bu_name -- 事业部名称 ${if(len(sPl) == 0,"","and pl_name IN ('"+ sPl+"')")}
-- todo:事业部大区 -- 品项
-- todo:公司大区 ${if(len(sPi) == 0,"","and pi_name IN ('"+ sPi+"')")}
,region_code -- 大区编码 -- 子主经销商
,region_name -- 大区名称 ${if(sDeal == 1,if(len(sDealName) == 0,"","and deal_code IN ('"+ sDealName+"')"),if(len(sDealName) == 0,"","and src_deal_code IN ('"+ sDealName +"')"))}
,office_code -- 办事处编码
,office_name -- 办事处名称
,city_unit_code -- 城市单元编码
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,deal_province -- 经销区域-省
,deal_city -- 经销区域-市
,deal_county -- 经销区域-县
,pl_code -- 产品线
,pl_name -- 产品线名称
,pi_name -- 品项
,product_code -- 产品编码
,product_name -- 产品名称
,deal_code -- 经销商编码
,deal_name -- 经销商名称
,src_deal_code -- 子经销商编码
,src_deal_name -- 子经销商名称
,signed_date -- 合同签订时间 todo:时间统计口径待确认
FROM dm.v_ag_sal_contract -- 合同表 产品+合同ID
)A
LEFT JOIN
(
SELECT
ct_code -- 合同编码
,ct_year -- 合同年度
,bu_code -- 事业部编码
,region_code -- 大区编码
,office_code -- 办事处编码
,city_unit_code -- 城市单元编码
,deal_code -- 经销商编码
,src_deal_code -- 子经销商编码
,SUM(ship_amt) AS ship_amt -- 出货金额
FROM dm.v_ag_sal_contract_ship
GROUP BY ct_code , ct_year, bu_code, region_code, office_code, city_unit_code, deal_code, deal_name, src_deal_code, src_deal_name
)B
ON A.ct_code = B.ct_code
AND A.ct_year = B.ct_year
AND A.bu_code = B.bu_code
AND A.region_code = B.region_code
AND A.office_code = B.office_code
AND A.city_unit_code = B.city_unit_code
AND A.deal_code = B.deal_code
AND A.src_deal_code = B.src_deal_code
GROUP BY A.ct_year, A.signed_date, A.signed_date, A.signed_date, A.bu_code, A.bu_name, A.region_code, A.region_name, A.office_code, A.office_name, A.city_unit_code, A.city_unit_name, A.province_name, A.city_name, A.deal_province, A.deal_city, A.deal_county, A.pl_code, A.pl_name, A.pi_name, A.product_code, A.product_name, A.deal_code, A.deal_name, A.src_deal_code, A.src_deal_name
)T2
ON T1.bu_code = T2.bu_code
AND T1.region_code = T2.region_code
AND T1.office_code = T2.office_code
AND T1.city_unit_code = T2.city_unit_code
AND T1.province_name = T2.province_name
AND T1.pl_name = T2.pl_name
AND T1.pi_name = T2.pi_name
AND T1.product_code = T2.product_code
AND T1.deal_code = T2.deal_code
AND T1.src_deal_code = T2.src_deal_code
LEFT JOIN
(-- 销售回款
SELECT
EXTRACT(YEAR FROM bill_date) AS order_year -- 单据年度
,EXTRACT(QUARTER FROM bill_date) AS order_quar -- 单据季度
,EXTRACT(MONTH FROM bill_date) AS order_month -- 单据月份
,TO_CHAR(bill_date, 'YYYY-MM-DD') AS order_time -- 单据时间
,bu_code -- 事业部编码
,bu_name -- 事业部名称
-- todo:事业部大区
-- todo:公司大区
,region_code -- 大区编码
,region_name -- 大区名称
,office_code -- 办事处编码
,office_name -- 办事处名称
,city_unit_code -- 城市单元编码
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
-- ,pl_code -- 产品线
,pl_name -- 产品线名称
-- ,pi_name -- 品项
-- ,product_code -- 产品编码
--- ,product_name -- 产品名称
,deal_code -- 经销商编码
,deal_name -- 经销商名称
,src_deal_code -- 子经销商编码
,src_deal_name -- 子经销商名称
,SUM(COALESCE(clc_amt,0)) AS clc_amt -- 回款金额
FROM dm.v_ag_sal_collection -- 销售回款
GROUP BY bill_date, bill_date, bill_date, bill_date, bu_code, bu_name, region_code, region_name, office_code, office_name, city_unit_code, city_unit_name, province_name, city_name, pl_name, deal_code, deal_name, src_deal_code, src_deal_name
)T3
ON T1.bu_code = T3.bu_code
AND T1.region_code = T3.region_code
AND T1.office_code = T3.office_code
AND T1.city_unit_code = T3.city_unit_code
AND T1.province_name = T3.province_name
AND T1.pl_name = T3.pl_name
-- AND T1.pi_name = T3.pi_name
-- AND T1.product_code = T3.product_code
AND T1.deal_code = T3.deal_code
AND T1.src_deal_code = T3.src_deal_code
LEFT JOIN
(
GROUP BY
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
UNION ALL
-- 销售回款
SELECT
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,'' AS pi_name -- 品项
,'' AS product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
,0 AS ct_amt -- 合同金额
,0 AS total_amt -- 订单金额
,SUM(COALESCE(clc_amt,0)) AS clc_amt -- 回款金额
,0 AS deli_amt -- 发货金额
,0 AS ship_num -- 发货件数
,0 AS ship_botnum-- 发货瓶数
,0 AS real_amt -- 实物库存
FROM dm.v_ag_sal_collection -- 销售回款
WHERE 1=1
AND TO_CHAR(bill_date, 'YYYY-MM-DD') >= '${sStartDate}'
AND TO_CHAR(bill_date, 'YYYY-MM-DD') < '${sEndDate}'
-- 事业部
${if(len(sBu) == 0,"","and bu_code IN ('"+sBu+"')")}
-- 大区
${if(len(sCompRegion) == 0,"","and region_code IN ('"+ sCompRegion+"')")}
-- 办事处
${if(len(sOffice) == 0,"","and office_code IN ('"+ sOffice+"')")}
-- 城市单元
${if(len(sCityUnit) == 0,"","and city_unit_code IN ('"+ sCityUnit+"')")}
-- 省
${if(len(sProvince) == 0,"","and province_name IN ('"+ sProvince+"')")}
-- 市
${if(len(sCity) == 0,"","and city_name IN ('"+ sCity+"')")}
-- 产品线
${if(len(sPl) == 0,"","and pl_name IN ('"+ sPl+"')")}
-- 子主经销商
${if(sDeal == 1,if(len(sDealName) == 0,"","and deal_code IN ('"+ sDealName+"')"),if(len(sDealName) == 0,"","and src_deal_code IN ('"+ sDealName +"')"))}
GROUP BY
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
UNION ALL
-- 销售发货 -- 销售发货
SELECT EXTRACT(YEAR FROM deli_time) AS order_year -- 发货年度 SELECT
, EXTRACT(QUARTER FROM deli_time) AS order_quar -- 发货季度 bu_name -- 事业部名称
, EXTRACT(MONTH FROM deli_time) AS order_month -- 发货月份 ,region_name -- 大区名称
, TO_CHAR(deli_time, 'YYYY-MM-DD') AS order_time -- 发货时间 ,office_name -- 办事处名称
, bu_code -- 事业部编码 ,city_unit_name -- 城市单元名称
, bu_name -- 事业部名称 ,province_name -- 省
-- todo:事业部大区 ,city_name -- 市
-- todo:公司大区 ,pl_name -- 产品线名称
, region_code -- 大区编码 ,pi_name -- 品项
, region_name -- 大区名称 ,product_name -- 产品名称
, office_code -- 办事处编码 ,deal_name -- 经销商名称
, office_name -- 办事处名称 ,src_deal_name -- 子经销商名称
, city_unit_code -- 城市单元编码 ,0 AS ct_amt -- 合同金额
, city_unit_name -- 城市单元名称 ,0 AS total_amt -- 订单金额
, province_name -- 省 ,0 AS clc_amt -- 回款金额
, city_name -- 市 ,SUM(deli_amt) AS deli_amt -- 发货金额
, pl_name -- 产品线名称 ,SUM(deli_num / pack_base_num) AS ship_num -- 发货件数
, pi_name -- 品项 ,0 AS ship_botnum-- 发货瓶数
, product_code -- 产品编码 ,0 AS real_amt -- 实物库存
, product_name -- 产品名称 FROM dm.v_ag_sal_deliver
, deal_code -- 经销商编码 WHERE 1=1
, deal_name -- 经销商名称 AND TO_CHAR(deli_time, 'YYYY-MM-DD') >= '${sStartDate}'
, src_deal_code -- 子经销商编码 AND TO_CHAR(deli_time, 'YYYY-MM-DD') < '${sEndDate}'
, src_deal_name -- 子经销商名称 -- 事业部
, deli_amt -- 发货总金额 ${if(len(sBu) == 0,"","and bu_code IN ('"+sBu+"')")}
, SUM(deli_num / pack_base_num) AS ship_num-- 发货件数 = 发货数量 / 转化率 -- 大区
-- todo 发货瓶数 ${if(len(sCompRegion) == 0,"","and region_code IN ('"+ sCompRegion+"')")}
FROM dm.v_ag_sal_deliver -- 办事处
GROUP BY deli_time, deli_time, deli_time, deli_time, bu_code, bu_name, region_code, region_name, office_code, ${if(len(sOffice) == 0,"","and office_code IN ('"+ sOffice+"')")}
office_name, city_unit_code, city_unit_name, province_name, city_name, pl_name, pi_name, product_code, -- 城市单元
product_name, deal_code, deal_name, src_deal_code, src_deal_name, deli_amt ${if(len(sCityUnit) == 0,"","and city_unit_code IN ('"+ sCityUnit+"')")}
)T4 -- 省
ON T1.bu_code = T4.bu_code ${if(len(sProvince) == 0,"","and province_name IN ('"+ sProvince+"')")}
AND T1.region_code = T4.region_code -- 市
AND T1.office_code = T4.office_code ${if(len(sCity) == 0,"","and city_name IN ('"+ sCity+"')")}
AND T1.city_unit_code = T4.city_unit_code -- 产品线
AND T1.province_name = T4.province_name ${if(len(sPl) == 0,"","and pl_name IN ('"+ sPl+"')")}
AND T1.pl_name = T4.pl_name -- 品项
AND T1.pi_name = T4.pi_name ${if(len(sPi) == 0,"","and pi_name IN ('"+ sPi+"')")}
AND T1.product_code = T4.product_code -- 子主经销商
AND T1.deal_code = T4.deal_code ${if(sDeal == 1,if(len(sDealName) == 0,"","and deal_code IN ('"+ sDealName+"')"),if(len(sDealName) == 0,"","and src_deal_code IN ('"+ sDealName +"')"))}
AND T1.src_deal_code = T4.src_deal_code
LEFT JOIN GROUP BY
( bu_name -- 事业部名称
-- 实物库存 ,region_name -- 大区名称
SELECT stock_year AS stock_year -- 年度 ,office_name -- 办事处名称
, CASE ,city_unit_name -- 城市单元名称
WHEN stock_month IN ('01', '02', '03') THEN 1 ,province_name -- 省
WHEN stock_month IN ('04', '05', '06') THEN 2 ,city_name -- 市
WHEN stock_month IN ('07', '08', '09') THEN 3 ,pl_name -- 产品线名称
WHEN stock_month IN ('10', '11', '12') THEN 4 ,pi_name -- 品项
END AS stock_quar ,product_name -- 产品名称
, stock_month AS stock_month ,deal_name -- 经销商名称
, CONCAT(stock_year, '-', stock_month, '-01') AS stock_date ,src_deal_name -- 子经销商名称
, bu_code -- 事业部编码 UNION ALL
, bu_name -- 事业部名称 -- 实物库存
-- todo:事业部大区 SELECT
-- todo:公司大区 bu_name -- 事业部名称
, region_code -- 大区编码 ,region_name -- 大区名称
, region_name -- 大区名称 ,office_name -- 办事处名称
, office_code -- 办事处编码 ,city_unit_name -- 城市单元名称
, office_name -- 办事处名称 ,province_name -- 省
, city_unit_code -- 城市单元编码 ,city_name -- 市
, city_unit_name -- 城市单元名称 ,pl_name -- 产品线名称
, province_name -- 省 ,pi_name -- 品项
, city_name -- 市 ,product_name -- 产品名称
, pl_name -- 产品线名称 ,deal_name -- 经销商名称
, pi_name -- 品项 ,src_deal_name -- 子经销商名称
, product_code -- 产品编码 ,0 AS ct_amt -- 合同金额
, product_name -- 产品名称 ,0 AS total_amt -- 订单金额
, deal_code -- 经销商编码 ,0 AS clc_amt -- 回款金额
, deal_name -- 经销商名称 ,0 AS deli_amt -- 发货金额
, SUM(end_num * price) AS real_amt -- 实物库存金额 ,0 AS ship_num -- 发货件数
FROM dm.v_ag_sal_deal_stock ,0 AS ship_botnum-- 发货瓶数
GROUP BY stock_year, stock_month, bu_code, bu_name, region_code, region_name, office_code, office_name, ,SUM(end_num * price) AS real_amt -- 实物库存金额
city_unit_code, city_unit_name, province_name, city_name, pl_name, pi_name, product_code, product_name, FROM dm.v_ag_sal_deal_stock
deal_code, deal_name WHERE 1=1
)T5 AND CONCAT(stock_year, '-', stock_month, '-01') >= '${sStartDate}'
ON T1.bu_code = T5.bu_code AND CONCAT(stock_year, '-', stock_month, '-01') < '${sEndDate}'
AND T1.region_code = T5.region_code -- 事业部
AND T1.office_code = T5.office_code ${if(len(sBu) == 0,"","and bu_code IN ('"+sBu+"')")}
AND T1.city_unit_code = T5.city_unit_code -- 大区
AND T1.province_name = T5.province_name ${if(len(sCompRegion) == 0,"","and region_code IN ('"+ sCompRegion+"')")}
AND T1.pl_name = T5.pl_name -- 办事处
AND T1.pi_name = T5.pi_name ${if(len(sOffice) == 0,"","and office_code IN ('"+ sOffice+"')")}
AND T1.product_code = T5.product_code -- 城市单元
AND T1.deal_code = T5.deal_code ${if(len(sCityUnit) == 0,"","and city_unit_code IN ('"+ sCityUnit+"')")}
-- 省
${if(len(sProvince) == 0,"","and province_name IN ('"+ sProvince+"')")}
-- 市
${if(len(sCity) == 0,"","and city_name IN ('"+ sCity+"')")}
-- 产品线
${if(len(sPl) == 0,"","and pl_name IN ('"+ sPl+"')")}
-- 品项
${if(len(sPi) == 0,"","and pi_name IN ('"+ sPi+"')")}
-- 子主经销商
${if(sDeal == 1,if(len(sDealName) == 0,"","and deal_code IN ('"+ sDealName+"')"),if(len(sDealName) == 0,"","and src_deal_code IN ('"+ sDealName +"')"))}
GROUP BY
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
)T1
GROUP BY
T1.bu_name
,T1.region_name
,T1.office_name
,T1.city_unit_name
,T1.province_name
,T1.city_name
,T1.pl_name
,T1.pi_name
,T1.product_name
,T1.deal_name
,T1.src_deal_name
; ;

View File

@ -0,0 +1,25 @@
-- ======================================
-- 产品维度表
-- ======================================
SELECT
product_code --
,product_name --
,pi_code --
,pi_name --
,pl_code --线
,pl_name --线
,price --
,spec --
,base_unit --
,pack_unit --
,pack_base_num --
,pr_code --
,pr_name --
,bu_code --
,aroma_type --
,alc_degree --
,price_out --
,price_in --
FROM dwr.dim_product

View File

@ -0,0 +1,21 @@
-- ======================================
-- 机构维度表
-- ======================================
select
dept_code -- 城市单元编码
,dept_name -- 城市单元名称
,thrd_dept_code -- 办事处编码
,thrd_dept_name -- 办事处名称
,secd_dept_code -- 大区编码
,secd_dept_name -- 大区名称
,fist_dept_code -- 事业部编码
,fist_dept_name -- 事业部名称
from dwr.dim_department
where dept_level=4
and corp_code='0202'
and enabled_status=1
and fist_dept_code in ('0202/0212','0202/0225','0202/0226','0202/0209','0202/0252')
and thrd_dept_name !~'停用|废'
and secd_dept_name !~'停用|废'

View File

@ -0,0 +1,28 @@
-- ======================================
-- 经销商维度表
-- ======================================
select
a.deal_code AS deal_code -- 经销商编码
,b.deal_name AS deal_name -- 经销商名称
,a.city_unit_code AS city_unit_code -- 城市单元编码
,a.city_unit_name AS city_unit_name -- 城市单元名称
,a.office_code AS office_code -- 办事处编码
,a.office_name AS office_name -- 办事处名称
,a.region_code AS region_code -- 大区编码
,a.region_name AS region_name -- 大区名称
,a.bu_code AS bu_code -- 事业部编码
,a.bu_name AS bu_name -- 事业部名称
,b.country_code AS country_code -- 国家编码
,b.country_name AS country_name -- 国别
,b.province_code AS province_code -- 省级编码
,b.province_name AS province_name -- 注册地所在省
,b.city_code AS city_code -- 市级编码
,b.city_name AS city_name -- 注册地所在市
,b.county_code AS county_code -- 县级编码
,b.county_name AS county_name -- 注册地所在县
from dwr.dim_dealer_administer a
left join dwr.dim_dealer b
on a.deal_code=b.deal_code
where a.enabled_status=1
and a.region_name !~'停用'
and a.office_name !~'停用'