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

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$/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="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
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
(
-- 销售订单(订单金额)
SELECT
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 -- 订单时间
,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(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
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
)T1
LEFT JOIN
(
(
-- 销售订单(订单金额)
SELECT
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
,0 AS ct_amt -- 合同金额
,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 -- 订单金额
,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_order -- 销售订单视图
WHERE 1 = 1
AND TO_CHAR(order_time, 'YYYY-MM-DD') >= '${sStartDate}'
AND TO_CHAR(order_time, '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(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
A.ct_year AS ct_year -- 合同年度
,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 -- 合同签订日期
,A.bu_code AS bu_code -- 事业部编码
-- ,A.bu_name AS bu_name -- 事业部名称
,A.region_code AS region_code -- 大区编码
-- ,A.region_name AS region_name -- 大区名称
,A.office_code AS office_code -- 办事处编码
-- ,A.office_name AS office_name -- 办事处名称
,A.city_unit_code AS city_unit_code -- 城市单元编码
-- ,A.city_unit_name AS city_unit_name -- 城市单元名称
,A.province_name AS province_name -- 省
-- ,A.city_name AS city_name -- 市
-- ,A.deal_province AS deal_province -- 经销区域-省
-- ,A.deal_city AS deal_city -- 经销区域-市
--,A.deal_county AS deal_county -- 经销区域-县
,A.pl_code AS pl_code -- 产品线
,A.pl_name AS pl_name -- 产品线名称
,A.pi_name AS pi_name -- 品项
,A.product_code AS product_code -- 产品编码
,A.product_name AS product_name -- 产品名称
,A.deal_code AS deal_code -- 经销商编码
,A.deal_name AS deal_name -- 经销商名称
,A.src_deal_code AS src_deal_code -- 子经销商编码
,A.src_deal_name AS src_deal_name -- 子经销商名称
,SUM(A.ct_amt) AS ct_amt -- 合同金额
,SUM(COALESCE(B.ship_amt,0)) AS ship_amt -- 出货金额
FROM
(
SELECT
ct_code -- 合同编码
,ct_amt -- 合同金额
,ct_year -- 合同年度
,bu_code -- 事业部编码
,bu_name -- 事业部名称
-- todo:事业部大区
-- todo:公司大区
,region_code -- 大区编码
,region_name -- 大区名称
,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
(
SELECT
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
,sum(ct_amt) as ct_amt -- 合同金额
,0 AS total_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_contract -- 合同表 产品+合同ID
WHERE 1 = 1
AND TO_CHAR(signed_date, 'YYYY-MM-DD') >= '${sStartDate}'
AND TO_CHAR(signed_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(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
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 -- 发货年度
, 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 -- 发货时间
, 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_name -- 产品线名称
, pi_name -- 品项
, product_code -- 产品编码
, product_name -- 产品名称
, deal_code -- 经销商编码
, deal_name -- 经销商名称
, src_deal_code -- 子经销商编码
, src_deal_name -- 子经销商名称
, deli_amt -- 发货总金额
, SUM(deli_num / pack_base_num) AS ship_num-- 发货件数 = 发货数量 / 转化率
-- todo 发货瓶数
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,
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
)T4
ON T1.bu_code = T4.bu_code
AND T1.region_code = T4.region_code
AND T1.office_code = T4.office_code
AND T1.city_unit_code = T4.city_unit_code
AND T1.province_name = T4.province_name
AND T1.pl_name = T4.pl_name
AND T1.pi_name = T4.pi_name
AND T1.product_code = T4.product_code
AND T1.deal_code = T4.deal_code
AND T1.src_deal_code = T4.src_deal_code
LEFT JOIN
(
-- 实物库存
SELECT stock_year AS stock_year -- 年度
, 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
, 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_name -- 产品线名称
, pi_name -- 品项
, product_code -- 产品编码
, product_name -- 产品名称
, deal_code -- 经销商编码
, deal_name -- 经销商名称
, SUM(end_num * price) AS real_amt -- 实物库存金额
FROM dm.v_ag_sal_deal_stock
GROUP BY stock_year, stock_month, 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
)T5
ON T1.bu_code = T5.bu_code
AND T1.region_code = T5.region_code
AND T1.office_code = T5.office_code
AND T1.city_unit_code = T5.city_unit_code
AND T1.province_name = T5.province_name
AND T1.pl_name = T5.pl_name
AND T1.pi_name = T5.pi_name
AND T1.product_code = T5.product_code
AND T1.deal_code = T5.deal_code
SELECT
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
,0 AS ct_amt -- 合同金额
,0 AS total_amt -- 订单金额
,0 AS clc_amt -- 回款金额
,SUM(deli_amt) AS deli_amt -- 发货金额
,SUM(deli_num / pack_base_num) AS ship_num -- 发货件数
,0 AS ship_botnum-- 发货瓶数
,0 AS real_amt -- 实物库存
FROM dm.v_ag_sal_deliver
WHERE 1=1
AND TO_CHAR(deli_time, 'YYYY-MM-DD') >= '${sStartDate}'
AND TO_CHAR(deli_time, '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(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
bu_name -- 事业部名称
,region_name -- 大区名称
,office_name -- 办事处名称
,city_unit_name -- 城市单元名称
,province_name -- 省
,city_name -- 市
,pl_name -- 产品线名称
,pi_name -- 品项
,product_name -- 产品名称
,deal_name -- 经销商名称
,src_deal_name -- 子经销商名称
,0 AS ct_amt -- 合同金额
,0 AS total_amt -- 订单金额
,0 AS clc_amt -- 回款金额
,0 AS deli_amt -- 发货金额
,0 AS ship_num -- 发货件数
,0 AS ship_botnum-- 发货瓶数
,SUM(end_num * price) AS real_amt -- 实物库存金额
FROM dm.v_ag_sal_deal_stock
WHERE 1=1
AND CONCAT(stock_year, '-', stock_month, '-01') >= '${sStartDate}'
AND CONCAT(stock_year, '-', stock_month, '-01') < '${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(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 !~'停用'