Files
MarketAnalysis-ETL/CHPA/02 tmp_ims_tf_fact_sales.sql
chenwu 832c7bcd69 new file: 01 dm_tf_external_sales.sql
new file:   02 dm_td_external_keycompatitor.sql
	new file:   03 dm_td_external_brand_market.sql
	new file:   04 dm_td_external_calendar.sql
	new file:   05 dm_td_external_exchangerate.sql
	new file:   07 dm_td_external_packinfo.sql
	new file:   08 dm_td_external_corp.sql
	new file:   09 dm_td_external_geo_type.sql
	new file:   11 DM_TD_EXTERNAL_MARKET_NEW.sql
	new file:   12 dm_td_external_org.sql
	new file:   13 external auth.sql
	new file:   14 dm_tf_external_retail_special_bkp.sql
	new file:   AIA/01 dm_aia_pack_property.sql
	new file:   AIA/02 dm_ext_aia_sales.sql
	new file:   AIA/02 dm_ext_aia_sales_bakup_20230327.sql
	new file:   AIA/03 dm_aia_flag.sql
	new file:   AIA/04 dm_aia_provided_flag.sql
	new file:   AIA/06 DM_TD_EXT_AIA_PACK_PROPERTY.sql
	new file:   AIA/07 DM_TD_EXT_AIA_PACK2MARKET.sql
	new file:   AIA/08 DM_TD_EXT_AIA_MARKET_RATIO.sql
	new file:   AIA/09 DM_TD_EXT_AIA_MARKET_BRAND_RATIO.sql
	new file:   AIA/10 DM_TD_EXT_AIA_MARKET_PACK_MAPPING.sql
	new file:   AIA/11 DM_TD_EXT_AIA_TARGET_INST.sql
	new file:   AIA/11 dm_aia_targethp_flag.sql
	new file:   "AIA/z_03 dm_aia_flag_\345\244\207\344\273\275\347\224\250.sql"
	new file:   CHC/01 dm_chc_pack_property.sql
	new file:   CHC/02 DM_TF_EXT_CHC_SALES.sql
	new file:   CHC/03 DM_TD_EXT_CHC_PACK_PROPERTY.sql
	new file:   CHC/04 DM_TD_EXT_CHC_PACK2MARKET.sql
	new file:   CHC/05 DM_TD_EXT_CHC_MARKET_RATIO.sql
	new file:   CHC/06 DM_TD_EXT_CHC_MARKET_BRAND_RATIO.sql
	new file:   CHC/07 DM_TD_EXT_CHC_MARKET_PACK_MAPPING.sql
	new file:   CHPA/01 dwd_ims_atc_hierarchy.sql
	new file:   CHPA/01 dwd_ims_nfc_hierarchy.sql
	new file:   CHPA/01 dwd_ims_td_manufacturer_corp.sql
	new file:   CHPA/01 dwd_ims_td_pack_property.sql
	new file:   CHPA/01 dwd_update.sql
	new file:   CHPA/01_FB_BLOB_TO_DWD.sql
	new file:   CHPA/02 DWS_IMS_TD_GEO.sql
	new file:   CHPA/02 dws_ims_td_atc_cn.sql
	new file:   CHPA/02 dws_ims_td_corp_cn.sql
	new file:   CHPA/02 dws_ims_td_date.sql
	new file:   CHPA/02 dws_ims_td_manu_cn.sql
	new file:   CHPA/02 dws_ims_td_market.sql
	new file:   CHPA/02 dws_ims_td_market_ta.sql
	new file:   CHPA/02 dws_ims_td_nfc_cn.sql
	new file:   CHPA/02 dws_ims_td_prod_cn.sql
	new file:   CHPA/02 tmp_ims_td_prod_tmp.sql
	new file:   CHPA/02 tmp_ims_tf_fact_sales.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql
	new file:   CHPA/03 DM_TF_EXT_CHPA_SALES.sql
	new file:   CHPA/03 dm_ims_td_calendar.sql
	new file:   CHPA/03 dm_ims_td_geo.sql
	new file:   CHPA/03 dm_ims_td_market_property.sql
	new file:   CHPA/03 dm_ims_td_org.sql
	new file:   CHPA/03 dm_ims_td_org_hvh.sql
	new file:   CHPA/03 dm_ims_td_pack_property.sql
	new file:   CHPA/03 dm_ims_tf_sales.sql
	new file:   CHPA/03 dm_td_chpa_market_definition.sql
	new file:   CHPA/03 dm_td_ims_city_mapping.sql
	new file:   EC/03 ec_load_data.sql
	new file:   EC/04 DM_TD_EXT_EC_PACK_PROPERTY.sql
	new file:   EC/05 DM_TF_EXT_EC_SALES.sql
	new file:   EC/06 DM_TD_EXT_EC_PACK2MARKET.sql
	new file:   EC/07 DM_TD_EXT_EC_MARKET_RATIO.sql
	new file:   EC/08 DM_TD_EXT_EC_MARKET_BRAND_RATIO.sql
	new file:   EC/09 DM_TD_EXT_EC_MARKET_PACK_MAPPING.sql
	new file:   EC/1 (ec)blob_to_dwd.sql
	new file:   EC/2 dwd_inc_gnd_ext_ec_nationnal_pack_union_all.py
	new file:   Merged_Data/Merged_Data_Config_table_bkp.sql
	new file:   Merged_Data/Merged_Data_Config_table_bymonth.sql
	new file:   Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql
	new file:   Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql
	new file:   ORG/DM_TD_EXT_AIA_ORG.sql
	new file:   ORG/DM_TD_EXT_CHC_ORG.sql
	new file:   ORG/DM_TD_EXT_CHPA_ORG.sql
	new file:   ORG/DM_TD_EXT_COUNTY_ORG.sql
	new file:   ORG/DM_TD_EXT_EC_ORG.sql
	new file:   ORG/DM_TD_EXT_RETAIL_ORG.sql
	new file:   ORG/DM_TD_EXT_THC_ORG.sql
	new file:   ORG/DM_TD_EXT_XIEHE_ORG.sql
	new file:   OTHERS/01 dm_td_report_url.sql
	new file:   OTHERS/02 dws_ext_email_warning.sql
	new file:   OTHERS/external_triggered_email.py
	new file:   Retail/01 load_tmp_data.py
	new file:   Retail/02 split_brand_data.py
	new file:   Retail/03 split_pack_data.py
	new file:   Retail/04 map_to_dws_table.py
	new file:   Retail/05 load_dtp_temp_data.py
	new file:   Retail/06 split_dtp_brand_data.py
	new file:   Retail/07 split_dtp_pack_data.py
	new file:   Retail/08 map_to_dtp_dws_table.py
	new file:   Retail/09 dwd_inc_gnd_ext_retail_nataional.py
	new file:   Retail/10 map_to_retail_dm_table.py
	new file:   Retail/11 map_to_overview_dm_table.py
	new file:   Retail/12 dws_tf_external_retail_dtp_special.sql
	new file:   Retail/13 DM_TF_EXT_RETAIL_SALES.sql
	new file:   Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql
	new file:   Retail/15 DM_TD_EXT_RETAIL_PACK_PROPERTY.sql
	new file:   Retail/16 DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY.sql
	new file:   Retail/17 DM_TD_EXT_DTP_PACK2MARKET.sql
	new file:   Retail/17 DM_TD_EXT_RETAIL_PACK2MARKET.sql
	new file:   Retail/18 DM_TD_EXT_DTP_MARKET_RATIO.sql
	new file:   Retail/18 DM_TD_EXT_RETAIL_MARKET_RATIO.sql
	new file:   Retail/19 DM_TD_EXT_DTP_MARKET_BRAND_RATIO.sql
	new file:   Retail/19 DM_TD_EXT_RETAIL_MARKET_BRAND_RATIO.sql
	new file:   Retail/20 DM_TD_EXT_DTP_MARKET_PACK_MAPPING.sql
	new file:   Retail/20 DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING.sql
	new file:   "Retail/z1 dwd_inc_gnd_ext_retail_nataional_\344\275\234\345\272\237.py"
	new file:   "Retail/z2 retail_load_data_\344\275\234\345\272\237.sql"
	new file:   "Retail/z3 retail_overview_data_\344\275\234\345\272\237.sql"
	new file:   THC/01 dm_thc_pack_property.sql
	new file:   THC/02 dm_ext_thc_sales.sql
	new file:   THC/02 dm_ext_thc_sales_bakup_20260327.sql
	new file:   THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql
	new file:   THC/04 dm_tf_external_sales_thc.sql
	new file:   THC/05 DM_TD_EXT_THC_PACK_PROPERTY.sql
	new file:   THC/06 DM_TD_EXT_THC_PACK2MARKET.sql
	new file:   THC/07 DM_TD_EXT_THC_MARKET_RATIO.sql
	new file:   THC/08 DM_TD_EXT_THC_MARKET_BRAND_RATIO.sql
	new file:   THC/09 DM_TD_EXT_THC_MARKET_PACK_MAPPING.sql
	new file:   UNIONALL/DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING.sql
	new file:   UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_SALES.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD.sql
	new file:   XIEHE/01 xiehe_blob_to_dwd.py
	new file:   XIEHE/02 dm_xiehe_pack_property.sql
	new file:   XIEHE/03 dm_ext_xiehe_geo.sql
	new file:   XIEHE/04 dm_ext_xiehe_sales.sql
	new file:   XIEHE/05 dm_td_xiehe_core_dept.sql
	new file:   XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql
	new file:   XIEHE/07 DM_TD_EXT_XIEHE_PACK_PROPERTY.sql
	new file:   XIEHE/08 DM_TD_EXT_XIEHE_PACK2MARKET.sql
	new file:   XIEHE/09 DM_TD_EXT_XIEHE_MARKET_RATIO.sql
	new file:   XIEHE/10 DM_TD_EXT_XIEHE_MARKET_BRAND_RATIO.sql
	new file:   XIEHE/11 DM_TD_EXT_XIEHE_MARKET_PACK_MAPPING.sql
	new file:   XIEHE/bkp_01 xiehe_blob2dwd.py
	new file:   XIEHE/bkp_02 dm_ext_xiehe_sales.sql
	new file:   XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql
	new file:   county/01 tmp_ims_county_fact_sales_sum.sql
	new file:   county/02 tmp_imscounty_Result.sql
	new file:   county/03 dm_ims_td_county_geo.sql
	new file:   county/04 dws_ext_county_tf_sales.sql
	new file:   county/05 dm_ext_county_td_pack_property.sql
	new file:   county/06 dm_td_county_pack_region.sql
	new file:   county/07 dm_ext_county_tf_sales_region.sql
	new file:   county/08 DM_TD_EXT_COUNTY_PACK_PROPERTY.sql
	new file:   county/09 DM_TF_EXT_COUNTY_SALES.sql
	new file:   county/10 DM_TD_EXT_COUNTY_PACK2MARKET.sql
	new file:   county/11 DM_TD_EXT_COUNTY_MARKET_RATIO.sql
	new file:   county/12 DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO.sql
	new file:   county/13 DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING.sql
	new file:   for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql
	new file:   for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql
	new file:   for_AIA_Dashboard/03 dm_td_aia_original_col.sql
	new file:   for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql
	new file:   for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql
	new file:   for_AIA_Dashboard/06 dm_td_aia_rank.sql
	new file:   for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql
	new file:   for_AIA_Dashboard/07 dm_td_aia_remove_special_ins_bkp.py
	new file:   for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql
	new file:   z 01 dm_tf_external_sales.sql
	new file:   "z 10 dm_td_external_market_pack_mapping_\344\275\234\345\272\237.sql"
	new file:   "z 11 dm_td_external_market_\344\275\234\345\272\237.sql"
	new file:   "\344\270\212\347\272\277\350\204\232\346\234\254.sql"
	new file:   "\346\225\260\346\215\256\351\252\214\350\257\201.sql"
2026-04-27 15:48:38 +08:00

317 lines
9.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Databricks notebook source
-- 20260130 临时方案解决测试环境有NULL值问题
create or replace temporary view dwd_ims_td_pack
as
select
distinct
pack_id,
pack_code
from dwd.dwd_ims_td_pack
-- COMMAND ----------
CREATE OR REPLACE TEMPORARY VIEW FACT_CHPA_SALES_TEMP_WITH_PREVIOUS
AS
SELECT
CAST(YM AS INT) AS YM,
CAST(YEAR AS INT) AS YEAR,
CAST(REPLACE(YM,YEAR,'') AS INT) AS MONTH,
CAST(VALUE AS DECIMAL(38,10)) AS VALUE,
CAST(COUNTINGUNIT AS DECIMAL(38,10)) AS COUNTINGUNIT,
CAST(TOTALUNIT AS DECIMAL(38,10)) AS TOTALUNIT,
PROVINCE_C,
PHCD,
conversion_ratio
FROM dwd.dwd_gnd_pharbers_prov_fact
-- COMMAND ----------
CREATE OR REPLACE TEMPORARY VIEW DIM_PROVINCE
AS
select
-- t2.geo_key ,
t2.province_code,
CASE
WHEN
t2.province_name
IN ('上海','北京','天津','重庆')
THEN
CONCAT(t2.province_name,'')
WHEN
t2.province_name
IN ('内蒙古','西藏')
THEN
CONCAT(t2.province_name,'自治区')
WHEN
t2.province_name = '宁夏'
THEN CONCAT(t2.province_name,'回族自治区')
WHEN
t2.province_name = '广西'
THEN CONCAT(t2.province_name,'壮族自治区')
WHEN
t2.province_name = '新疆'
THEN CONCAT(t2.province_name,'维吾尔自治区')
ELSE CONCAT(t2.province_name,'')
END AS province_name
from dm.dm_td_geography t2
where t2.geo_key = t2.province_code
and province_name not in ('台湾','澳门','香港')
-- COMMAND ----------
CREATE OR REPLACE TEMPORARY VIEW DIM_CHPA_PACK_INFO
AS
SELECT
PACK_COD,
MAX(IQVIA_PACK_CODE) AS IQVIA_PACK_CODE,
MAX(countingunit) as COUNTINGUNIT_RATIO
FROM
dwd.dwd_gnd_dept_pack_property
GROUP BY
PACK_COD
-- COMMAND ----------
CREATE OR REPLACE TEMPORARY VIEW FACT_CHPA_SALES
AS
SELECT
YM,
YEAR,
REPLACE(YM,YEAR,'') AS MONTH,
T3.IQVIA_PACK_CODE AS PACK_CODE,
T2.PROVINCE_CODE AS AUDIT_COD,
VALUE AS MTH00LC,
0 AS MTH00LCLY,
CASE WHEN T3.COUNTINGUNIT_RATIO IS NULL THEN TOTALUNIT*T1.conversion_ratio ELSE TOTALUNIT*T3.COUNTINGUNIT_RATIO END AS MTH00CN,
0 AS MTH00CNLY,
TOTALUNIT AS MTH00UN,
0 AS MTH00UNLY
FROM FACT_CHPA_SALES_TEMP_WITH_PREVIOUS AS T1
LEFT JOIN DIM_PROVINCE AS T2 ON T1.PROVINCE_C = T2.PROVINCE_NAME
LEFT JOIN DIM_CHPA_PACK_INFO AS T3 ON T1.PHCD = T3.PACK_COD
UNION ALL
SELECT
CAST((YEAR+1)*100+REPLACE(YM,YEAR,'') AS INT) AS YM,
YEAR+1,
CAST(REPLACE(YM,YEAR,'') AS INT) AS MONTH,
T3.IQVIA_PACK_CODE AS PACK_CODE,
T2.PROVINCE_CODE AS AUDIT_COD,
0 AS MTH00LC,
VALUE AS MTH00LCLY,
0 AS MTH00CN,
CASE WHEN T3.COUNTINGUNIT_RATIO IS NULL THEN TOTALUNIT*T1.conversion_ratio ELSE TOTALUNIT*T3.COUNTINGUNIT_RATIO END AS MTH00CNLY,
0 AS MTH00UN,
TOTALUNIT AS MTH00UNLY
FROM FACT_CHPA_SALES_TEMP_WITH_PREVIOUS AS T1
LEFT JOIN DIM_PROVINCE AS T2 ON T1.PROVINCE_C = T2.PROVINCE_NAME
LEFT JOIN DIM_CHPA_PACK_INFO AS T3 ON T1.PHCD = T3.PACK_COD
-- COMMAND ----------
-- 20260119 dwd.dwd_ims_td_pack、dwd.dwd_ims_tf_fact_sales 不依赖
--删除最近五年的dim pack数据将最新的dim pack写入
delete from dws.dws_ims_td_pack_ym
where ym + 500 >
(select max(year * 100 + month) from dwd.dwd_ims_tf_fact_sales);
insert into dws.dws_ims_td_pack_ym
select
distinct ym,
pack_id,
pack_code,
from_utc_timestamp(current_timestamp(), 'UTC+8'),
from_utc_timestamp(current_timestamp(), 'UTC+8')
from
(
select
distinct year * 100 + month as ym
from
dwd.dwd_ims_tf_fact_sales
where
year * 100 + month + 500 > (
select max(year * 100 + month) from dwd.dwd_ims_tf_fact_sales
)
) full
-- join dwd.dwd_ims_td_pack
join dwd_ims_td_pack
;
-- COMMAND ----------
-- --IMS 原始数据预处理
-- --FACT SALES 处理
-- insert overwrite table tmp.tmp_ims_tf_fact_sales
-- select distinct
-- FACT.YM,AUDIT.Audit_Code AS AUDIT_COD,FACT.Pack_Code AS PACK_COD,
-- sum(MTH00LC) as MTH00LC,sum(MTH00LCLY) as MTH00LCLY,
-- sum(MTH00CN) as MTH00CN,sum(MTH00CNLY) as MTH00CNLY,
-- sum(MTH00UN) as MTH00UN,sum(MTH00UNLY) as MTH00UNLY
-- from(
-- select
-- Year*100+Month as YM,
-- Year ,
-- Month ,
-- t2.pack_code ,
-- Audit_ID ,
-- SalesValue_LC as MTH00LC,
-- 0 as MTH00LCLY,
-- Counting_Unit as MTH00CN,
-- 0 as MTH00CNLY,
-- Sales_Unit as MTH00UN,
-- 0 as MTH00UNLY
-- from dwd.dwd_ims_tf_fact_sales t1
-- --补充历史的PACK ID 和 PACK CODE的关联关系带上YM将最新dim pack表full join 最近五年
-- left join dws.dws_ims_td_pack_ym t2 on t1.Pack_ID=t2.pack_id and t1.Year*100+t1.Month=t2.ym
-- union all
-- select
-- (Year+1)*100+Month as YM,
-- Year+1 ,
-- Month ,
-- t2.pack_code ,
-- Audit_ID ,
-- 0 as MTH00LC,
-- SalesValue_LC as MTH00LCLY,
-- 0 as MTH00CN,
-- Counting_Unit as MTH00CNLY,
-- 0 as MTH00UN,
-- Sales_Unit as MTH00UNLY
-- from dwd.dwd_ims_tf_fact_sales t1
-- --补充历史的PACK ID 和 PACK CODE的关联关系带上YM将最新dim pack表full join 最近五年
-- left join dws.dws_ims_td_pack_ym t2 on t1.Pack_ID=t2.pack_id and t1.Year*100+t1.Month=t2.ym
-- )FACT
-- LEFT JOIN dwd.dwd_ims_td_audit AUDIT
-- ON FACT.Audit_ID = AUDIT.Audit_ID
-- where FACT.YM<=(select max(Year*100+Month) from dwd.dwd_ims_tf_fact_sales)
-- ----------20260320 chenwu CHPA的数据只保留202201之后的
-- and FACT.YM>=202201
-- ----------
-- AND AUDIT.Audit_Code = 'CHT'
-- group by FACT.YM,AUDIT.Audit_Code,FACT.Pack_Code
-- -- 20260120新增
-- -- 以前 全国和省份数据放在一起,现在全国是上面,省份是新的,单独放在下面。
-- union all
-- select distinct
-- CAST(YM AS INT) AS YM,
-- AUDIT_COD,Pack_Code AS PACK_COD,
-- sum(MTH00LC) as MTH00LC,sum(MTH00LCLY) as MTH00LCLY,
-- sum(MTH00CN) as MTH00CN,sum(MTH00CNLY) as MTH00CNLY,
-- sum(MTH00UN) as MTH00UN,sum(MTH00UNLY) as MTH00UNLY
-- from
-- FACT_CHPA_SALES
-- where
-- YM<=(select max(YM) from dwd.dwd_gnd_pharbers_prov_fact)
-- group by YM,Audit_Cod,Pack_Code
-- ;
-- COMMAND ----------
-- IMS 原始数据预处理 —— FACT SALES 处理
INSERT OVERWRITE TABLE tmp.tmp_ims_tf_fact_sales
WITH yearmont_range (--防止翘角导致数据存在差异
select
min(ym) YM
from
(
select
max(ym) ym
from
dwd.dwd_gnd_pharbers_prov_fact
union all
select
max(Year * 100 + Month) ym
from
dwd.dwd_ims_tf_fact_sales
)
)
-- ════════════════════════════════════════════
-- Part 1全国数据CHT
-- ════════════════════════════════════════════
SELECT DISTINCT
FACT.YM,
AUDIT.Audit_Code AS AUDIT_COD,
FACT.Pack_Code AS PACK_COD,
SUM(MTH00LC) AS MTH00LC,
SUM(MTH00LCLY) AS MTH00LCLY,
SUM(MTH00CN) AS MTH00CN,
SUM(MTH00CNLY) AS MTH00CNLY,
SUM(MTH00UN) AS MTH00UN,
SUM(MTH00UNLY) AS MTH00UNLY
FROM (
-- 当期销售数据
SELECT
Year * 100 + Month AS YM,
Year,
Month,
t2.pack_code,
Audit_ID,
SalesValue_LC AS MTH00LC,
0 AS MTH00LCLY,
Counting_Unit AS MTH00CN,
0 AS MTH00CNLY,
Sales_Unit AS MTH00UN,
0 AS MTH00UNLY
FROM dwd.dwd_ims_tf_fact_sales t1
-- 补充历史 Pack_ID → Pack_Code 映射(带 YM关联最近五年快照
LEFT JOIN dws.dws_ims_td_pack_ym t2
ON t1.Pack_ID = t2.pack_id
AND t1.Year * 100 + t1.Month = t2.ym
UNION ALL
-- 同期数据(当期行 YM+1 年,作为去年同期值)
SELECT
(Year + 1) * 100 + Month AS YM,
Year + 1,
Month,
t2.pack_code,
Audit_ID,
0 AS MTH00LC,
SalesValue_LC AS MTH00LCLY,
0 AS MTH00CN,
Counting_Unit AS MTH00CNLY,
0 AS MTH00UN,
Sales_Unit AS MTH00UNLY
FROM dwd.dwd_ims_tf_fact_sales t1
-- 补充历史 Pack_ID → Pack_Code 映射(带 YM关联最近五年快照
LEFT JOIN dws.dws_ims_td_pack_ym t2
ON t1.Pack_ID = t2.pack_id
AND t1.Year * 100 + t1.Month = t2.ym
) FACT
LEFT JOIN dwd.dwd_ims_td_audit AUDIT
ON FACT.Audit_ID = AUDIT.Audit_ID
WHERE FACT.YM <= (SELECT YM FROM yearmont_range)
AND FACT.YM >= 202201 -- 20260320 chenwu CHPA 数据只保留 202201 之后
AND AUDIT.Audit_Code = 'CHT'
GROUP BY
FACT.YM,
AUDIT.Audit_Code,
FACT.Pack_Code
UNION ALL
-- ════════════════════════════════════════════
-- Part 2省份数据CHPA
-- 20260120 新增:全国与省份拆分,省份数据单独维护
-- ════════════════════════════════════════════
SELECT DISTINCT
CAST(YM AS INT) AS YM,
AUDIT_COD,
Pack_Code AS PACK_COD,
SUM(MTH00LC) AS MTH00LC,
SUM(MTH00LCLY) AS MTH00LCLY,
SUM(MTH00CN) AS MTH00CN,
SUM(MTH00CNLY) AS MTH00CNLY,
SUM(MTH00UN) AS MTH00UN,
SUM(MTH00UNLY) AS MTH00UNLY
FROM FACT_CHPA_SALES
WHERE YM <= (SELECT YM FROM yearmont_range)
GROUP BY
YM,
Audit_Cod,
Pack_Code
;