Add EXTERNAL SQL scripts
This commit is contained in:
42
EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql
Normal file
42
EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
-- Databricks notebook source
|
||||
--dwd to dws
|
||||
--清洗数据的操作
|
||||
|
||||
|
||||
---处理宽维度表 202108
|
||||
--PRINT(GETDATE())
|
||||
|
||||
---ATC 处理成宽表
|
||||
|
||||
insert overwrite table dwd.dwd_ims_atc_hierarchy
|
||||
SELECT * --into DIM_ATC_Hierarchy
|
||||
FROM (SELECT Therapeutic_ID AS ATC1_ID,
|
||||
Therapeutic_Code AS ATC1_CODE,
|
||||
Therapeutic_Name AS ATC1_DES
|
||||
FROM dwd.dwd_ims_td_therapeutic_class ATC
|
||||
WHERE ATC. Therapeutic_Level = '1') ATC1
|
||||
|
||||
LEFT JOIN (SELECT Therapeutic_ID AS ATC2_ID,
|
||||
Therapeutic_Code AS ATC2_CODE,
|
||||
Therapeutic_Name AS ATC2_DES
|
||||
FROM dwd.dwd_ims_td_therapeutic_class ATC
|
||||
WHERE ATC. Therapeutic_Level = '2') ATC2
|
||||
ON ATC1. ATC1_CODE =
|
||||
LEFT (ATC2. ATC2_CODE, 1)
|
||||
|
||||
LEFT JOIN (SELECT Therapeutic_ID AS ATC3_ID,
|
||||
Therapeutic_Code AS ATC3_CODE,
|
||||
Therapeutic_Name AS ATC3_DES
|
||||
FROM dwd.dwd_ims_td_therapeutic_class ATC
|
||||
WHERE ATC. Therapeutic_Level = '3') ATC3
|
||||
ON ATC2. ATC2_CODE =
|
||||
LEFT (ATC3. ATC3_CODE, 3)
|
||||
|
||||
LEFT JOIN (SELECT Therapeutic_ID AS ATC4_ID,
|
||||
Therapeutic_Code AS ATC4_CODE,
|
||||
Therapeutic_Name AS ATC4_DES
|
||||
FROM dwd.dwd_ims_td_therapeutic_class ATC
|
||||
WHERE ATC. Therapeutic_Level = '4') ATC4
|
||||
ON ATC3. ATC3_CODE =
|
||||
LEFT (ATC4. ATC4_CODE, 4)
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql:Zone.Identifier
Normal file
Binary file not shown.
26
EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql
Normal file
26
EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Databricks notebook source
|
||||
--NFC 处理成宽表
|
||||
insert overwrite table dwd.dwd_ims_nfc_hierarchy
|
||||
SELECT *
|
||||
FROM (SELECT NewFormClass_ID as NFC1_ID,
|
||||
NewFormClass_Code as NFC1_CODE,
|
||||
NewFormClass_Name as NFC1_DES
|
||||
FROM dwd.dwd_ims_td_new_form_class NFC
|
||||
WHERE NewFormClass_Level = '1') NFC1
|
||||
|
||||
LEFT JOIN (SELECT NewFormClass_ID as NFC2_ID,
|
||||
NewFormClass_Code as NFC2_CODE,
|
||||
NewFormClass_Name as NFC2_DES
|
||||
FROM dwd.dwd_ims_td_new_form_class NFC
|
||||
WHERE NewFormClass_Level = '2') NFC2
|
||||
ON NFC1.NFC1_CODE =
|
||||
LEFT (NFC2.NFC2_CODE, 1)
|
||||
|
||||
LEFT JOIN (SELECT NewFormClass_ID as NFC3_ID,
|
||||
NewFormClass_Code as NFC3_CODE,
|
||||
NewFormClass_Name as NFC3_DES
|
||||
FROM dwd.dwd_ims_td_new_form_class NFC
|
||||
WHERE NewFormClass_Level = '3') NFC3
|
||||
ON NFC2.NFC2_CODE =
|
||||
LEFT (NFC3.NFC3_CODE, 2)
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql:Zone.Identifier
Normal file
Binary file not shown.
24
EXTERNAL/CHPA/01 dwd_ims_td_manufacturer_corp.sql
Normal file
24
EXTERNAL/CHPA/01 dwd_ims_td_manufacturer_corp.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
-- Databricks notebook source
|
||||
-----------------------------------------------------------------------------------------------------------------
|
||||
--修改时间:20240904
|
||||
--修改人:FanXujia
|
||||
--修改内容:
|
||||
--id为93的数,manufacturer_abbr不是SH/了,所以不能使用这个语句更新了。
|
||||
------------------------------------------------------------------------
|
||||
--MANU维度表,ManufacturerType_ID中存在为0的数据,关联不出对应的ManufacturerType
|
||||
--经过检查,ManufacturerType_ID = 0 的数据,其下属子集或者本身为MNC,所以将其修改成2,让报告上能正常识别成MNC
|
||||
UPDATE dwd.dwd_ims_td_manufacturer SET ManufacturerType_ID = 2 WHERE ManufacturerType_ID = 0;
|
||||
-- SH/的一行数据 中 / 为转义符,后面的数据不能有效识别,需要手动更新
|
||||
-- update dwd.dwd_ims_td_manufacturer set manufacturer_abbr ='SH/' where manufacturer_id = '93';
|
||||
-- update dwd.dwd_ims_td_manufacturer set corporation_id ='93' where manufacturer_id = '93';
|
||||
-- update dwd.dwd_ims_td_manufacturer set corporation_code ='00221' where manufacturer_id = '93';
|
||||
-- update dwd.dwd_ims_td_manufacturer set manufacturertype_id ='1' where manufacturer_id = '93';
|
||||
-----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
--处理manu跟corp的mapping关系
|
||||
insert overwrite table dwd.dwd_ims_td_manufacturer_corp
|
||||
SELECT T1.*,T2.Corporation_Code AS CORP_MASTER_CODE,T2.Manufacturer_Abbr AS CORP_ABBR,T2.Manufacturer_Name AS CORP_DES
|
||||
FROM dwd.dwd_ims_td_manufacturer T1
|
||||
LEFT JOIN dwd.dwd_ims_td_manufacturer T2
|
||||
ON T1.Corporation_Code = T2.Manufacturer_CODE
|
||||
;
|
||||
Binary file not shown.
89
EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql
Normal file
89
EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql
Normal file
@@ -0,0 +1,89 @@
|
||||
-- Databricks notebook source
|
||||
|
||||
-------使用新的DIM表,生成PackProfile,保证后续的逻辑
|
||||
-- 20260119 依赖前面 dwd.dwd_ims_nfc_hierarchy、dwd.dwd_ims_atc_hierarchy、dwd.dwd_ims_td_manufacturer_corp
|
||||
-- 20260119 依赖上面补0 dwd.dwd_gnd_ims_tblbrandtype
|
||||
|
||||
insert overwrite table dwd.dwd_ims_td_pack_property
|
||||
select DISTINCT
|
||||
if( PACK.Pack_Code REGEXP '^[0-9]',right(concat('000000000000',PACK.Pack_Code),12),PACK.Pack_Code) as PACK_COD, --RIGHT(concat('0000000',PACK.Pack_Code),7)
|
||||
PACK.Pack_Description AS PACK_DES,
|
||||
PACK.STRENGTH AS STGH_DES,
|
||||
concat('Y',LEFT(PACK.LAUNCHTIME,4),'M',RIGHT(PACK.LAUNCHTIME,2)) AS PACK_LCH,
|
||||
|
||||
RIGHT(concat('000000000',PROD.Product_Code),9) AS PROD_COD, --RIGHT(concat('00000',PROD.Product_Code),5)
|
||||
RIGHT(concat('000000',MOLE.MoleCompCode),6) AS CMPS_COD,
|
||||
MOLE.MoleCompDesc AS CMPS_DES,
|
||||
|
||||
ATCH.ATC1_CODE AS ATC1_COD,
|
||||
ATCH.ATC2_CODE AS ATC2_COD,
|
||||
ATCH.ATC3_CODE AS ATC3_COD,
|
||||
ATCH.ATC4_CODE AS ATC4_COD,
|
||||
|
||||
NFCH.NFC1_CODE AS APP1_COD,
|
||||
NFCH.NFC2_CODE AS APP2_COD,
|
||||
NFCH.NFC3_CODE AS APP3_COD,
|
||||
|
||||
MOLE.BIO AS BIO_DESC,
|
||||
MOLE.Gene_Orig AS GENE_ORIG_DESC,
|
||||
MOLE.Rx_Flag AS ETH_OTC_DESC,
|
||||
MOLE.NRDL AS NRDL_DESC,
|
||||
MOLE.NRDL_Entry_Date,
|
||||
MOLE.EDL AS EDL_DESC,
|
||||
MOLE.TCMEX AS TCM_DESC,
|
||||
MOLE.PAED AS PAED_DESC,
|
||||
MOLE.GQCE AS GQCE_DESC,
|
||||
MOLE.VBP AS VBP_DESC,
|
||||
MANU.Manufacturer_Abbr AS MANU_COD,
|
||||
MANU.Manufacturer_Name AS MANU_DES,
|
||||
MANUT.ManufacturerType_CODE AS MNFL_COD,
|
||||
MANUT.ManufacturerType_Name AS MNFL_DES,
|
||||
MANU.CORP_ABBR AS CORP_COD,
|
||||
MANU.CORP_DES AS CORP_DES,
|
||||
BRANDTYPE.Brand_Type AS BrandType
|
||||
from dwd.dwd_ims_td_pack PACK
|
||||
LEFT JOIN dwd.dwd_ims_td_product PROD ON PACK.Product_ID = PROD.Product_ID
|
||||
LEFT JOIN dwd.dwd_ims_td_new_form_class NFC ON PACK.NewFormClass_ID = NFC.NewFormClass_ID
|
||||
LEFT JOIN dwd.dwd_ims_nfc_hierarchy NFCH ON NFC.NewFormClass_Code = NFCH.NFC3_CODE
|
||||
LEFT JOIN dwd.dwd_ims_td_therapeutic_class ATC ON PACK.Therapeutic_ID = ATC.Therapeutic_ID
|
||||
LEFT JOIN dwd.dwd_ims_atc_hierarchy ATCH ON ATC.Therapeutic_Code = ATCH.ATC4_CODE
|
||||
LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON PACK.Pack_ID = MOLE.Pack_ID
|
||||
LEFT JOIN dwd.dwd_ims_td_manufacturer_corp MANU ON PROD.Manufacturer_ID = MANU.Manufacturer_ID
|
||||
LEFT JOIN dwd.dwd_ims_td_manufacturertype MANUT ON MANU.ManufacturerType_ID = MANUT.ManufacturerType_ID
|
||||
LEFT JOIN dwd.dwd_gnd_ims_tblbrandtype BRANDTYPE ON PACK.Pack_Code = BRANDTYPE.PACK_COD
|
||||
;
|
||||
|
||||
update dwd.dwd_ims_td_pack_property set CORP_COD ='' where CORP_COD is null ;
|
||||
update dwd.dwd_ims_td_pack_property set STGH_DES ='' where STGH_DES is null ;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 20260119 修改 dwd.dwd_ims_td_pack_property 我感觉可以拉到前面去
|
||||
-- 要调研下,为什么前面没有写,而在后面写。
|
||||
--Update AZ BRANDS SCOPE---MANU的页面显示
|
||||
---by Product&Pack add in 'Fluimucil, Broncho-vaxom, Ai Rui Zhuo', by AC 202103
|
||||
update dwd.dwd_ims_td_pack_property
|
||||
set CORP_COD = 'A5Z', CORP_DES = 'ASTRAZENECA GROUP'
|
||||
where PROD_COD in(
|
||||
select
|
||||
right(concat('0000000000',PROD_COD),9) as PROD_COD --right(concat('000000',PROD_COD),5)
|
||||
from dwd.dwd_gnd_tbl_corp_change where corp_cod='A5Z')
|
||||
or PACK_COD in(
|
||||
select
|
||||
if( PACK_COD REGEXP '^[0-9]',right(concat('000000000000',PACK_COD),12),PACK_COD) as PACK_COD --right(concat('000000',PACK_COD),7)
|
||||
from dwd.dwd_gnd_tbl_corp_change where corp_cod='A5Z')
|
||||
-- where PROD_COD in ('97336','73148') OR PACK_COD = '0795918'
|
||||
;
|
||||
---by Product&Pack remove out tblAZScope.xlsx', by AC 202103
|
||||
update dwd.dwd_ims_td_pack_property
|
||||
set CORP_COD = 'A5ZD', CORP_DES = 'AZDealed',MANU_COD = 'A5ZD' ,MANU_DES = 'AZDealed'
|
||||
where PROD_COD in(
|
||||
select
|
||||
right(concat('0000000000',PROD_COD),9) as PROD_COD
|
||||
from dwd.dwd_gnd_tbl_corp_change where corp_cod='A5ZD')
|
||||
or PACK_COD in(
|
||||
select
|
||||
if( PACK_COD REGEXP '^[0-9]',right(concat('000000000000',PACK_COD),12),PACK_COD) as PACK_COD
|
||||
from dwd.dwd_gnd_tbl_corp_change where corp_cod='A5ZD')
|
||||
-- where PROD_COD in ('02267','14691','58423','12754','06482','97266','14164')
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql:Zone.Identifier
Normal file
Binary file not shown.
32
EXTERNAL/CHPA/01 dwd_update.sql
Normal file
32
EXTERNAL/CHPA/01 dwd_update.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Databricks notebook source
|
||||
--对折算规则文件中的Pack,Mole code 补0
|
||||
--时间条件为空的,赋默认值
|
||||
--地理维度表增加KCT和ROC
|
||||
UPDATE dwd.dwd_gnd_ims_tblBrandRatio
|
||||
SET
|
||||
PACK_COD = if( CAST(PACK_COD AS string) REGEXP '^[0-9]',right(concat('000000000000',CAST(PACK_COD AS string)),12),CAST(PACK_COD AS string)),
|
||||
CMPS_COD = RIGHT(concat('000000',CAST(CMPS_COD AS string)),6),
|
||||
StartTime = CASE WHEN StartTime IS NULL OR UPPER(StartTime)= 'ALL' THEN '190001' ELSE StartTime END,
|
||||
EndTime = CASE WHEN EndTime IS NULL OR UPPER(EndTime)= 'ALL' THEN '209901' ELSE EndTime END
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 20260119 这个补0操作,可以放最前面,或者专门找个地方放。
|
||||
----确保Market和KeyCompetitor配置表中,Pack_Code,Product_Code,Molecule_Code 三个字段都已经补0
|
||||
|
||||
UPDATE dwd.dwd_gnd_ims_tblmarket
|
||||
--20250428 chenwu iqivacode扩到12位,brandcode 扩到9位
|
||||
SET Pack_Code = if( Pack_Code REGEXP '^[0-9]',right(concat('000000000000',Pack_Code),12),Pack_Code)
|
||||
,Product_Code = RIGHT(concat('000000000',Product_Code),9) --RIGHT(concat('00000',Product_Code),5)
|
||||
,Molecule_Code = RIGHT(concat('000000',Molecule_Code),6)
|
||||
;
|
||||
UPDATE dwd.dwd_gnd_ims_tblkeycompetitor
|
||||
SET Pack_Code = if( Pack_Code REGEXP '^[0-9]',right(concat('000000000000',Pack_Code),12),Pack_Code)
|
||||
,Product_Code = RIGHT(concat('000000000',Product_Code),9) --RIGHT(concat('00000',Product_Code),5)
|
||||
,Molecule_Code = RIGHT(concat('000000',Molecule_Code),6)
|
||||
;
|
||||
UPDATE dwd.dwd_gnd_ims_tblbrandtype
|
||||
SET PACK_COD = if( PACK_COD REGEXP '^[0-9]',right(concat('000000000000',PACK_COD),12),PACK_COD) --RIGHT(concat('0000000',PACK_COD),7)
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/01 dwd_update.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/01 dwd_update.sql:Zone.Identifier
Normal file
Binary file not shown.
210
EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql
Normal file
210
EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql
Normal file
@@ -0,0 +1,210 @@
|
||||
-- Databricks notebook source
|
||||
-- MAGIC %md
|
||||
-- MAGIC ### 从blob读取csv文件作为chap法伯的事实表
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 源表:文件
|
||||
-- 目标表:DWD.DWD_GND_PHARBERS_PROV_FACT
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %run ../../../Common/config
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC from datetime import datetime, timedelta
|
||||
-- MAGIC import pandas as pd
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC if ENVIRONMENT == PRD_ENVIRONMENT_VALUE:
|
||||
-- MAGIC factsales_file_path_template = "abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/ODS/GND/UserUpload/"
|
||||
-- MAGIC elif ENVIRONMENT == TEST_ENVIRONMENT_VALUE:
|
||||
-- MAGIC factsales_file_path_template = "abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/ODS/GND/UserUpload/"
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC # 计算时间得到当天的路径
|
||||
-- MAGIC current_date = datetime.utcnow() + timedelta(hours=8)
|
||||
-- MAGIC date_path = current_date.strftime("%Y/%m/%d/")
|
||||
-- MAGIC base_path = factsales_file_path_template + date_path
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC # 路径是否存在
|
||||
-- MAGIC def path_exists(path):
|
||||
-- MAGIC try:
|
||||
-- MAGIC dbutils.fs.ls(path)
|
||||
-- MAGIC return True
|
||||
-- MAGIC except Exception as e:
|
||||
-- MAGIC if "java.io.FileNotFoundException" in str(e):
|
||||
-- MAGIC return False
|
||||
-- MAGIC else:
|
||||
-- MAGIC print(f"检查路径 {path} 时出错: {e}")
|
||||
-- MAGIC raise
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC # 列出blob上的文件列表
|
||||
-- MAGIC def list_file_name(path):
|
||||
-- MAGIC first_path_list = [i.path for i in dbutils.fs.ls(path)]
|
||||
-- MAGIC second_path_list = [dbutils.fs.ls(i)[0] for i in first_path_list ]
|
||||
-- MAGIC return second_path_list
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC # 从blob下载文件到local
|
||||
-- MAGIC def download_file(file_path, local_path):
|
||||
-- MAGIC # dbutils.fs.cp(file_path, local_path.replace("/dbfs", ""))
|
||||
-- MAGIC dbutils.fs.cp(file_path, local_path)
|
||||
-- MAGIC print(f"已下载 {file_path} 到 {local_path}")
|
||||
-- MAGIC return local_path
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %md
|
||||
-- MAGIC ### 获取路径下的文件名称
|
||||
-- MAGIC - 并挑出符合条件的文件路径
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC try:
|
||||
-- MAGIC if path_exists(base_path):
|
||||
-- MAGIC all_file_list = list_file_name(base_path)
|
||||
-- MAGIC # 生成df来筛选内容
|
||||
-- MAGIC files_df = pd.DataFrame([{
|
||||
-- MAGIC 'path':f.path,
|
||||
-- MAGIC 'modificationtime': f.modificationTime,
|
||||
-- MAGIC 'name': f.name
|
||||
-- MAGIC } for f in all_file_list])
|
||||
-- MAGIC print(f"{base_path} 路径存在")
|
||||
-- MAGIC else:
|
||||
-- MAGIC print(f"{base_path} 路径不存在")
|
||||
-- MAGIC except Exception as e:
|
||||
-- MAGIC print(e)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC try:
|
||||
-- MAGIC files_df = files_df.sort_values('modificationtime', ascending=False).drop_duplicates('name').sort_index()
|
||||
-- MAGIC files_df = files_df[files_df['name'].str.match(r'^Pharbers_PROV_Fact.*\.csv$')]
|
||||
-- MAGIC files_df
|
||||
-- MAGIC except Exception as e:
|
||||
-- MAGIC print(e)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %md
|
||||
-- MAGIC ### 读取文件内容
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC import os
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC # 下载数据到local
|
||||
-- MAGIC try:
|
||||
-- MAGIC if files_df['path'].tolist():
|
||||
-- MAGIC # 如果列表不为空
|
||||
-- MAGIC df_all = []
|
||||
-- MAGIC for file in files_df['path'].tolist():
|
||||
-- MAGIC local_path = download_file(file, f"/Volumes/{NGBI_CATALOG}/tmp/volume_tmp/tmp/{os.path.basename(file)}")
|
||||
-- MAGIC file_df = (spark.read.option("header", "true").option("quote", '"').option("escape", '"').option("multiLine", "true").option("mode", "PERMISSIVE").csv(local_path))
|
||||
-- MAGIC file_df = file_df.drop("TA",'Market')
|
||||
-- MAGIC print(f'已读取{local_path}')
|
||||
-- MAGIC df_all.append(file_df)
|
||||
-- MAGIC # df_combine = pd.concat(df_all)
|
||||
-- MAGIC df_ifexists = True
|
||||
-- MAGIC else:
|
||||
-- MAGIC print('没有符合条件的文件')
|
||||
-- MAGIC df_ifexists= False
|
||||
-- MAGIC except Exception as e:
|
||||
-- MAGIC print(e)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC try:
|
||||
-- MAGIC if df_ifexists: # 如果不为空
|
||||
-- MAGIC spark.sql(f"TRUNCATE table tmp.tmp_chpa_raw_data")
|
||||
-- MAGIC num = 1
|
||||
-- MAGIC for i in df_all:
|
||||
-- MAGIC i.withColumnRenamed('IMS.药品ID','IMS_DRUG_ID') \
|
||||
-- MAGIC .withColumnRenamed('是否法伯编码','IS_HOSP_CODE') \
|
||||
-- MAGIC .withColumnRenamed('规格','SPEC') \
|
||||
-- MAGIC .withColumnRenamed('转换比','CONVERSION_RATIO') \
|
||||
-- MAGIC .withColumnRenamed('剂型','DOSAGE_FORM') \
|
||||
-- MAGIC .withColumnRenamed('价格','PRICE')
|
||||
-- MAGIC # i.columns = ['area','city','yyyyqq','yyyymm','reimburse','prescription_source','prescription_dept_lv1','prescription_dept_lv2','prescription_dept_lv3','ATC','new_code','common_name','product_name','pack_des','PackSize','PackageType','nfc','manu_des','drug_delivery_route','prescription','sales_vol','sales_value'] #'h_level',
|
||||
-- MAGIC # sdf = spark.createDataFrame(i)
|
||||
-- MAGIC i.createOrReplaceTempView('fact_sales')
|
||||
-- MAGIC spark.sql(f"INSERT into tmp.tmp_chpa_raw_data SELECT * FROM fact_sales")
|
||||
-- MAGIC print(f'第{num}个')
|
||||
-- MAGIC num +=1
|
||||
-- MAGIC except Exception as e:
|
||||
-- MAGIC print(e)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %md
|
||||
-- MAGIC ### 将读取到的dataframe写入表中
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 全量覆盖
|
||||
insert overwrite dwd.dwd_gnd_pharbers_prov_fact
|
||||
select
|
||||
year,
|
||||
ym,
|
||||
province_c,
|
||||
ims_drug_id,
|
||||
is_hosp_code,
|
||||
prod_corp,
|
||||
prod_cod,
|
||||
pack_cod,
|
||||
phcd,
|
||||
prod_des,
|
||||
cmps_des,
|
||||
corp_des,
|
||||
mnfl_cod,
|
||||
prod_des_c,
|
||||
cmps_c,
|
||||
corp_des_c,
|
||||
pack_des,
|
||||
spec,
|
||||
conversion_ratio,
|
||||
dosage_form,
|
||||
atc4_cod,
|
||||
app1_cod,
|
||||
app1_des,
|
||||
app1_des_c,
|
||||
app2_cod,
|
||||
app2_des,
|
||||
app2_des_c,
|
||||
app3_cod,
|
||||
app3_des,
|
||||
app3_des_c,
|
||||
vbp_batch,
|
||||
vbp,
|
||||
value,
|
||||
totalunit,
|
||||
countingunit,
|
||||
price,
|
||||
manu_des,
|
||||
manu_des_c,
|
||||
NULL AS source_file_path,
|
||||
NULL AS source_file_name,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt
|
||||
from tmp.tmp_chpa_raw_data
|
||||
BIN
EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql:Zone.Identifier
Normal file
Binary file not shown.
19
EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql
Normal file
19
EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Databricks notebook source
|
||||
-- 20260119 地理数据 我感觉可以拉到前面去
|
||||
--地理维度信息 Audit
|
||||
-- 20260122 因为城市数据不再提供,改为硬编码省份数据. By Yusuo/Chenwu
|
||||
INSERT OVERWRITE TABLE DWS.DWS_IMS_TD_GEO
|
||||
SELECT
|
||||
AUDIT_COD,
|
||||
AUDIT_DES,
|
||||
AUDIT_DES_C,
|
||||
AUDIT_TYPE,
|
||||
CITY_TIER,
|
||||
AZ_CITY_TIER,
|
||||
PROVINCE,
|
||||
PROVINCE_C,
|
||||
REGIONCENTER,
|
||||
ETL_INSERT_DT,
|
||||
ETL_UPDATE_DT
|
||||
FROM
|
||||
tmp.tmp_province_rawdata
|
||||
BIN
EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql:Zone.Identifier
Normal file
Binary file not shown.
33
EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql
Normal file
33
EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql
Normal file
@@ -0,0 +1,33 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DWD.DWD_GND_IMS_TBLATC,DWD.DWD_IMS_ATC_HIERARCHY
|
||||
-- 目标表:DWS.DWS_IMS_TD_ATC_CN
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--ATC挂中文名
|
||||
insert overwrite table dws.dws_ims_td_atc_cn
|
||||
SELECT DISTINCT
|
||||
T1.ATC1_CODE AS ATC1_COD,
|
||||
T1.ATC1_DES,
|
||||
case when ATC1.ATC1_DES_C is null then T1.ATC1_DES else ATC1.ATC1_DES_C end AS ATC1_DES_C,
|
||||
T1.ATC2_CODe AS ATC2_COD,
|
||||
T1.ATC2_DES,
|
||||
case when ATC2.ATC2_DES_C is null then T1.ATC2_DES else ATC2.ATC2_DES_C end AS ATC2_DES_C,
|
||||
T1.ATC3_CODe AS ATC3_COD,
|
||||
T1.ATC3_DES,
|
||||
case when ATC3.ATC3_DES_C is null then T1.ATC3_DES else ATC3.ATC3_DES_C end AS ATC3_DES_C,
|
||||
T1.ATC4_CODe AS ATC4_COD,
|
||||
T1.ATC4_DES,
|
||||
case when ATC4.ATC4_DES_C is null then T1.ATC4_DES else ATC4.ATC4_DES_C end AS ATC4_DES_C,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
FROM dwd.dwd_ims_ATC_Hierarchy T1
|
||||
LEFT JOIN (SELECT DISTINCT ATC4_COD,ATC4_DES_C FROM dwd.dwd_gnd_ims_tblATC) ATC4
|
||||
ON T1.ATC4_CODE = ATC4.ATC4_COD
|
||||
LEFT JOIN (SELECT DISTINCT ATC3_COD,ATC3_DES_C FROM dwd.dwd_gnd_ims_tblATC) ATC3
|
||||
ON T1.ATC3_CODE = ATC3.ATC3_COD
|
||||
LEFT JOIN (SELECT DISTINCT ATC2_COD,ATC2_DES_C FROM dwd.dwd_gnd_ims_tblATC) ATC2
|
||||
ON T1.ATC2_CODE = ATC2.ATC2_COD
|
||||
LEFT JOIN (SELECT DISTINCT ATC1_COD,ATC1_DES_C FROM dwd.dwd_gnd_ims_tblATC) ATC1
|
||||
ON T1.ATC1_CODE = ATC1.ATC1_COD
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql:Zone.Identifier
Normal file
Binary file not shown.
19
EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql
Normal file
19
EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Databricks notebook source
|
||||
-- 20260119 CORP 公司名中文信息 我感觉可以拉到前面去
|
||||
--CORP 公司名中文信息
|
||||
insert overwrite table dws.dws_ims_td_corp_cn
|
||||
SELECT DISTINCT T1.CORP_ABBR AS CORP_COD,T1.CORP_DES,T2.nameC AS CORP_DES_C,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
FROM dwd.dwd_ims_td_manufacturer_corp T1
|
||||
LEFT JOIN dwd.dwd_gnd_ims_tblmanucn T2
|
||||
ON T1.CORP_ABBR = T2.abbrev
|
||||
WHERE CORP_ABBR IS NOT NULL
|
||||
;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--新增AZDealed部分的维度
|
||||
INSERT INTO dws.dws_ims_td_corp_cn SELECT 'A5ZD','AZDealed','AZDealed',
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8');
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql:Zone.Identifier
Normal file
Binary file not shown.
28
EXTERNAL/CHPA/02 dws_ims_td_date.sql
Normal file
28
EXTERNAL/CHPA/02 dws_ims_td_date.sql
Normal file
@@ -0,0 +1,28 @@
|
||||
-- Databricks notebook source
|
||||
-- 依赖事实表 tmp.tmp_ims_tf_fact_sales; 所以一定要放后面。
|
||||
--基于Fact数据动态计算时间维度 最近五年
|
||||
insert overwrite table dws.dws_ims_td_date
|
||||
select distinct
|
||||
YM,
|
||||
left(cast(YM as string),4) as YEAR,
|
||||
right(cast(YM as string),2) as MONTH,
|
||||
concat(
|
||||
'Q',quarter(
|
||||
date(
|
||||
concat(
|
||||
left(cast(YM as string),4),'-',right(cast(YM as string),2),'-01'
|
||||
)))) as QUARTER,
|
||||
concat(
|
||||
left(cast(YM as string),4),'Q',quarter(
|
||||
date(
|
||||
concat(
|
||||
left(cast(YM as string),4),'-',right(cast(YM as string),2),'-01'
|
||||
)))) as YQ,
|
||||
case when YM=(select max(YM) from tmp.tmp_ims_tf_fact_sales) then 'R' else right(cast(YM as string),2) end as DATE_FLAG,
|
||||
case when YM%100>6 then concat(left(cast(YM as string),4),'H2') else concat(left(cast(YM as string),4),'H1') end as HALF_YEAR,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
from tmp.tmp_ims_tf_fact_sales
|
||||
where YM > (select max(YM)-900 from tmp.tmp_ims_tf_fact_sales)
|
||||
order by YM desc
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_date.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_date.sql:Zone.Identifier
Normal file
Binary file not shown.
18
EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql
Normal file
18
EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Databricks notebook source
|
||||
-- 20260119 MANU 生产商名中文信息 我感觉可以拉到前面去
|
||||
---MANU 生产商名中文信息
|
||||
insert overwrite table dws.dws_ims_td_manu_cn
|
||||
SELECT DISTINCT T1.Manufacturer_Abbr AS MANU_COD,T1.Manufacturer_Name AS MANU_DES,T2.nameC AS MANU_DES_C,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
FROM dwd.dwd_ims_td_manufacturer_corp T1
|
||||
LEFT JOIN dwd.dwd_gnd_ims_tblmanucn T2
|
||||
ON T1.Manufacturer_Abbr = T2.abbrev
|
||||
WHERE T1.Manufacturer_Abbr IS NOT NULL
|
||||
;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT INTO dws.dws_ims_td_manu_cn SELECT 'A5ZD','AZDealed','AZDealed',
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8');
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql:Zone.Identifier
Normal file
Binary file not shown.
238
EXTERNAL/CHPA/02 dws_ims_td_market.sql
Normal file
238
EXTERNAL/CHPA/02 dws_ims_td_market.sql
Normal file
@@ -0,0 +1,238 @@
|
||||
-- Databricks notebook source
|
||||
-- 20260119 依赖上面 dwd.dwd_ims_td_pack_property
|
||||
-- 20260119 依赖上面补0 dwd.dwd_ims_td_pack_property dwd.dwd_gnd_ims_tblmarket
|
||||
-----MARKET
|
||||
--第一步:
|
||||
--先处理 Extend_Market 和 NOT_IN_FLAG 都为空的数据,代表有明确定义得市场
|
||||
insert overwrite table tmp.tmp_ims_td_temp_market
|
||||
select distinct t2.market,t1.*,
|
||||
t2.bu,CASE WHEN t2.extend_market_ratio IS NULL THEN '1' ELSE t2.extend_market_ratio END AS Market_Ratio
|
||||
from dwd.dwd_ims_td_pack_property t1
|
||||
left join (select * from dwd.dwd_gnd_ims_tblmarket WHERE Extend_Market IS NULL AND ( NOT_IN_FLAG IS NULL or NOT_IN_FLAG = '1' )) t2
|
||||
on t1.ATC1_COD = case when t2.ATC1_Code is null then t1.ATC1_COD else t2.ATC1_Code end
|
||||
and t1.ATC2_COD = case when t2.ATC2_Code is null then t1.ATC2_COD else t2.ATC2_Code end
|
||||
and t1.ATC3_COD = case when t2.ATC3_Code is null then t1.ATC3_COD else t2.ATC3_Code end
|
||||
and t1.ATC4_COD = case when t2.ATC4_Code is null then t1.ATC4_COD else t2.ATC4_Code end
|
||||
and t1.APP1_COD = case when t2.NFC1_Code is null then t1.APP1_COD else t2.NFC1_Code end
|
||||
and t1.APP2_COD = case when t2.NFC2_Code is null then t1.APP2_COD else t2.NFC2_Code end
|
||||
and t1.APP3_COD = case when t2.NFC3_Code is null then t1.APP3_COD else t2.NFC3_Code end
|
||||
and t1.CORP_COD = case when t2.corporation_code is null then t1.CORP_COD else t2.corporation_code end
|
||||
and t1.MANU_COD = case when t2.Manufacturer_Code is null then t1.MANU_COD else t2.Manufacturer_Code end
|
||||
and t1.PROD_COD = case when t2.Product_Code is null then t1.PROD_COD else t2.Product_Code end
|
||||
and t1.PACK_COD = case when t2.Pack_Code is null then t1.PACK_COD else t2.Pack_Code end
|
||||
and t1.STGH_DES = case when t2.Strength is null then t1.STGH_DES else t2.Strength end
|
||||
and t1.CMPS_COD = case when t2.Molecule_Code is null then t1.CMPS_COD else t2.Molecule_Code end
|
||||
where t2.market is not null
|
||||
;
|
||||
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--第二步:
|
||||
--处理 Extend_Market 为空,并且 NOT_IN_FLAG 有值的数据,代表反选定义市场的规则
|
||||
insert overwrite table tmp.tmp_ims_td_temp_market_del
|
||||
select distinct t2.market,t1.*,t2.bu,CASE WHEN t2.extend_market_ratio IS NULL THEN '1' ELSE t2.extend_market_ratio END AS Market_Ratio
|
||||
from dwd.dwd_ims_td_pack_property t1
|
||||
left join (select * from dwd.dwd_gnd_ims_tblmarket WHERE Extend_Market IS NULL AND NOT_IN_FLAG = '0' ) t2
|
||||
on t1.ATC1_COD = case when t2.ATC1_Code is null then t1.ATC1_COD else t2.ATC1_Code end
|
||||
and t1.ATC2_COD = case when t2.ATC2_Code is null then t1.ATC2_COD else t2.ATC2_Code end
|
||||
and t1.ATC3_COD = case when t2.ATC3_Code is null then t1.ATC3_COD else t2.ATC3_Code end
|
||||
and t1.ATC4_COD = case when t2.ATC4_Code is null then t1.ATC4_COD else t2.ATC4_Code end
|
||||
and t1.APP1_COD = case when t2.NFC1_Code is null then t1.APP1_COD else t2.NFC1_Code end
|
||||
and t1.APP2_COD = case when t2.NFC2_Code is null then t1.APP2_COD else t2.NFC2_Code end
|
||||
and t1.APP3_COD = case when t2.NFC3_Code is null then t1.APP3_COD else t2.NFC3_Code end
|
||||
and t1.CORP_COD = case when t2.corporation_code is null then t1.CORP_COD else t2.corporation_code end
|
||||
and t1.MANU_COD = case when t2.Manufacturer_Code is null then t1.MANU_COD else t2.Manufacturer_Code end
|
||||
and t1.PROD_COD = case when t2.Product_Code is null then t1.PROD_COD else t2.Product_Code end
|
||||
and t1.PACK_COD = case when t2.Pack_Code is null then t1.PACK_COD else t2.Pack_Code end
|
||||
and t1.STGH_DES = case when t2.Strength is null then t1.STGH_DES else t2.Strength end
|
||||
and t1.CMPS_COD = case when t2.Molecule_Code is null then t1.CMPS_COD else t2.Molecule_Code end
|
||||
where t2.market is not null
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--!!!注意此段是反选的规则,故执行的是从已经定义好的TempMKT中删除数据
|
||||
--需要看TempMKT的字段结构,没有值的字段,在Value里面放个空值
|
||||
MERGE INTO tmp.tmp_ims_td_temp_market AS t1
|
||||
USING tmp.tmp_ims_td_temp_market_del AS t2
|
||||
on t1.ATC1_COD = t2.ATC1_COD
|
||||
and t1.ATC2_COD = t2.ATC2_COD
|
||||
and t1.ATC3_COD = t2.ATC3_COD
|
||||
and t1.ATC4_COD = t2.ATC4_COD
|
||||
and t1.APP1_COD = t2.APP1_COD
|
||||
and t1.APP2_COD = t2.APP2_COD
|
||||
and t1.APP3_COD = t2.APP3_COD
|
||||
and t1.CORP_COD = t2.CORP_COD
|
||||
and t1.MANU_COD = t2.MANU_COD
|
||||
and t1.PROD_COD = t2.PROD_COD
|
||||
and t1.PACK_COD = t2.PACK_COD
|
||||
and t1.STGH_DES = t2.STGH_DES
|
||||
and t1.CMPS_COD = t2.CMPS_COD
|
||||
and t1.market = t2.market
|
||||
WHEN MATCHED THEN DELETE
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
---第三步:
|
||||
--处理 Extend_Market 有值得数据,用已有市场,定义新的市场,带上系数
|
||||
insert into tmp.tmp_ims_td_temp_market
|
||||
select distinct
|
||||
t2.Market,
|
||||
t1.PACK_COD ,
|
||||
t1.PACK_DES ,
|
||||
t1.STGH_DES ,
|
||||
t1.PACK_LCH ,
|
||||
t1.PROD_COD ,
|
||||
t1.CMPS_COD ,
|
||||
t1.CMPS_DES ,
|
||||
t1.ATC1_COD ,
|
||||
t1.ATC2_COD ,
|
||||
t1.ATC3_COD ,
|
||||
t1.ATC4_COD ,
|
||||
t1.APP1_COD ,
|
||||
t1.APP2_COD ,
|
||||
t1.APP3_COD ,
|
||||
t1.BIO_DESC ,
|
||||
t1.GENE_ORIG_DESC ,
|
||||
t1.ETH_OTC_DESC ,
|
||||
t1.NRDL_DESC ,
|
||||
t1.NRDL_Entry_Date ,
|
||||
t1.EDL_DESC ,
|
||||
t1.TCM_DESC ,
|
||||
t1.PAED_DESC ,
|
||||
t1.GQCE_DESC ,
|
||||
t1.VBP_DESC ,
|
||||
t1.MANU_COD ,
|
||||
t1.MANU_DES ,
|
||||
t1.MNFL_COD ,
|
||||
t1.MNFL_DES ,
|
||||
t1.CORP_COD ,
|
||||
t1.CORP_DES ,
|
||||
t2.BU,
|
||||
t1.BrandType ,
|
||||
case when t2.Extend_Market_Ratio is null then '1' end AS Market_Ratio--市场的系数若没有维护,默认为1
|
||||
from tmp.tmp_ims_td_temp_market t1
|
||||
left join (select Market, BU,Extend_Market,Extend_Market_Ratio from dwd.dwd_gnd_ims_tblmarket WHERE Extend_Market IS NOT NULL) t2 on t1.Market=t2.Extend_Market
|
||||
where t2.Market is not null
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将,市场的系数为空值的数据,初始化为1
|
||||
UPDATE tmp.tmp_ims_td_temp_market SET Market_Ratio = 1 WHERE Market_Ratio IS NULL;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 20260119 依赖 tmp.tmp_ims_td_temp_market
|
||||
-- 20260119 依赖上面补0 dwd.dwd_gnd_ims_tblkeycompetitor
|
||||
|
||||
--KeyCompetitor部分
|
||||
--定义Key Competitor
|
||||
insert overwrite table tmp.tmp_ims_td_temp_market_upd1
|
||||
select distinct t2.keycompetitor as Key_Competitor,t2.no,t2.no1,t1.*
|
||||
from tmp.tmp_ims_td_temp_market t1
|
||||
left join (
|
||||
select
|
||||
ROW_NUMBER() OVER(ORDER BY
|
||||
CASE
|
||||
WHEN ATC1_Code IS NOT NULL THEN 1
|
||||
WHEN ATC2_Code IS NOT NULL THEN 2
|
||||
WHEN ATC3_Code IS NOT NULL THEN 3
|
||||
WHEN ATC4_Code IS NOT NULL THEN 4
|
||||
WHEN Molecule_Code IS NOT NULL THEN 5
|
||||
WHEN Product_Code IS NOT NULL THEN 6
|
||||
WHEN Pack_Code IS NOT NULL THEN 7
|
||||
ELSE 999 END,
|
||||
CASE WHEN NFC1_CODE IS NULL THEN 0 ELSE 1 END,
|
||||
CASE WHEN NFC2_CODE IS NULL THEN 0 ELSE 1 END,
|
||||
CASE WHEN NFC2_CODE IS NULL THEN 0 ELSE 1 END,
|
||||
CASE WHEN NFC3_CODE IS NULL THEN 0 ELSE 1 END
|
||||
) AS no1,* from dwd.dwd_gnd_ims_tblkeycompetitor
|
||||
)t2
|
||||
on t1.ATC1_COD = case when t2.ATC1_Code is null then t1.ATC1_COD else t2.ATC1_Code end
|
||||
and t1.ATC2_COD = case when t2.ATC2_Code is null then t1.ATC2_COD else t2.ATC2_Code end
|
||||
and t1.ATC3_COD = case when t2.ATC3_Code is null then t1.ATC3_COD else t2.ATC3_Code end
|
||||
and t1.ATC4_COD = case when t2.ATC4_Code is null then t1.ATC4_COD else t2.ATC4_Code end
|
||||
and t1.APP1_COD = case when t2.NFC1_Code is null then t1.APP1_COD else t2.NFC1_Code end
|
||||
and t1.APP2_COD = case when t2.NFC2_Code is null then t1.APP2_COD else t2.NFC2_Code end
|
||||
and t1.APP3_COD = case when t2.NFC3_Code is null then t1.APP3_COD else t2.NFC3_Code end
|
||||
and t1.CORP_COD = case when t2.corporation_code is null then t1.CORP_COD else t2.corporation_code end
|
||||
and t1.MANU_COD = case when t2.Manufacturer_Code is null then t1.MANU_COD else t2.Manufacturer_Code end
|
||||
and t1.PROD_COD = case when t2.Product_Code is null then t1.PROD_COD else t2.Product_Code end
|
||||
and t1.PACK_COD = case when t2.Pack_Code is null then t1.PACK_COD else t2.Pack_Code end
|
||||
and t1.STGH_DES = case when t2.Strength is null then t1.STGH_DES else t2.Strength end
|
||||
and t1.CMPS_COD = case when t2.Molecule_Code is null then t1.CMPS_COD else t2.Molecule_Code end
|
||||
and t1.market = case when t2.market is null then t1.market else t2.market end
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--删除被重复定义的Key Competitor,删除写入时间早的(No 小的)的对应行即可,保留No最大的一行即最新的规则
|
||||
insert overwrite table tmp.tmp_ims_td_temp_market_upd2
|
||||
select * from(
|
||||
select row_number() over(partition by market,pack_cod,prod_cod order by no1 desc,no desc) as id,*
|
||||
from tmp.tmp_ims_td_temp_market_upd1) where id>1
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
MERGE INTO tmp.tmp_ims_td_temp_market_upd1 AS t1
|
||||
USING tmp.tmp_ims_td_temp_market_upd2 AS t2
|
||||
on t1.ATC1_COD = t2.ATC1_COD
|
||||
and t1.ATC2_COD = t2.ATC2_COD
|
||||
and t1.ATC3_COD = t2.ATC3_COD
|
||||
and t1.ATC4_COD = t2.ATC4_COD
|
||||
and t1.APP1_COD = t2.APP1_COD
|
||||
and t1.APP2_COD = t2.APP2_COD
|
||||
and t1.APP3_COD = t2.APP3_COD
|
||||
and t1.CORP_COD = t2.CORP_COD
|
||||
and t1.MANU_COD = t2.MANU_COD
|
||||
and t1.PROD_COD = t2.PROD_COD
|
||||
and t1.PACK_COD = t2.PACK_COD
|
||||
and t1.STGH_DES = t2.STGH_DES
|
||||
and t1.CMPS_COD = t2.CMPS_COD
|
||||
and t1.market = t2.market
|
||||
and t1.Key_Competitor = t2.Key_Competitor
|
||||
and t1.no=t2.no
|
||||
WHEN MATCHED THEN DELETE
|
||||
;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--没有挂上KeyCompetitor的,更新为Others ,最后去掉No,写入临时表备用
|
||||
update tmp.tmp_ims_td_temp_market_upd1 set Key_Competitor = 'Others' where Key_Competitor is NULL;
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
insert overwrite table tmp.tmp_ims_td_temp_market_upd
|
||||
select
|
||||
Key_Competitor,market,PACK_COD,PACK_DES,STGH_DES,PACK_LCH,PROD_COD,CMPS_COD,CMPS_DES,
|
||||
ATC1_COD,ATC2_COD,ATC3_COD,ATC4_COD,APP1_COD,APP2_COD,APP3_COD,BIO_DESC,GENE_ORIG_DESC,
|
||||
ETH_OTC_DESC,NRDL_DESC,NRDL_Entry_Date,EDL_DESC,TCM_DESC,PAED_DESC,GQCE_DESC,VBP_DESC,
|
||||
MANU_COD,MANU_DES,MNFL_COD,MNFL_DES,CORP_COD,CORP_DES,BrandType,bu,Market_Ratio
|
||||
from tmp.tmp_ims_td_temp_market_upd1
|
||||
;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 20260119 市场维度信息 我感觉可以拉到前面去
|
||||
--市场维度信息
|
||||
insert overwrite table dws.dws_ims_td_market
|
||||
select distinct market,PACK_COD,PACK_DES,STGH_DES,PACK_LCH,PROD_COD,CMPS_COD,CMPS_DES,
|
||||
ATC1_COD,ATC2_COD,ATC3_COD,ATC4_COD,APP1_COD,APP2_COD,APP3_COD,BIO_DESC,GENE_ORIG_DESC,
|
||||
ETH_OTC_DESC,NRDL_DESC,NRDL_Entry_Date,EDL_DESC,TCM_DESC,PAED_DESC,GQCE_DESC,VBP_DESC,
|
||||
MANU_COD,MANU_DES,MNFL_COD,MNFL_DES,CORP_COD,CORP_DES,BrandType,bu,Market_Ratio,Key_Competitor,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
from tmp.tmp_ims_td_temp_market_upd
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_market.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_market.sql:Zone.Identifier
Normal file
Binary file not shown.
7
EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql
Normal file
7
EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Databricks notebook source
|
||||
-- 20260119 市场&TA 关系信息 我感觉可以拉到前面去
|
||||
--市场&TA 关系信息
|
||||
insert overwrite table dws.dws_ims_td_market_ta
|
||||
select *
|
||||
from dwd.dwd_gnd_ims_tblmarket_ta_map
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql:Zone.Identifier
Normal file
Binary file not shown.
22
EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql
Normal file
22
EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- Databricks notebook source
|
||||
--NFC挂中文名
|
||||
insert overwrite table dws.dws_ims_td_nfc_cn
|
||||
SELECT DISTINCT T1.NFC1_CODE AS APP1_COD ,
|
||||
T1.NFC1_DES AS APP1_DES,
|
||||
case when NFC1.APP1_DES_C is null then T1.NFC1_DES else NFC1.APP1_DES_C end AS APP1_DES_C,
|
||||
T1.NFC2_CODE AS APP2_COD ,
|
||||
T1.NFC2_DES AS APP2_DES,
|
||||
case when NFC2.APP2_DES_C is null then T1.NFC2_DES else NFC2.APP2_DES_C end AS APP2_DES_C,
|
||||
T1.NFC3_CODE AS APP3_COD,
|
||||
T1.NFC3_DES AS APP3_DES,
|
||||
case when NFC3.APP3_DES_C is null then T1.NFC3_DES else NFC3.APP3_DES_C end AS APP3_DES_C,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
FROM dwd.dwd_ims_NFC_Hierarchy T1
|
||||
LEFT JOIN (SELECT DISTINCT APP3_COD,APP3_DES_C FROM dwd.dwd_gnd_ims_tblAPP) NFC3
|
||||
ON T1.NFC3_CODE = NFC3.APP3_COD
|
||||
LEFT JOIN (SELECT DISTINCT APP2_COD,APP2_DES_C FROM dwd.dwd_gnd_ims_tblAPP) NFC2
|
||||
ON T1.NFC2_CODE = NFC2.APP2_COD
|
||||
LEFT JOIN (SELECT DISTINCT APP1_COD,APP1_DES_C FROM dwd.dwd_gnd_ims_tblAPP) NFC1
|
||||
ON T1.NFC1_CODE = NFC1.APP1_COD
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql:Zone.Identifier
Normal file
Binary file not shown.
7
EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql
Normal file
7
EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Databricks notebook source
|
||||
--产品挂中文名
|
||||
insert overwrite table dws.dws_ims_td_prod_cn
|
||||
SELECT distinct RIGHT(concat('0000000000',prodcode),9) AS PROD_COD,ename as PROD_DES,namec as PROD_DES_C, gene_name as CMPS_DES_C,1 AS RANK_TYPE,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
FROM dwd.dwd_gnd_ims_tblprodcn
|
||||
BIN
EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql:Zone.Identifier
Normal file
Binary file not shown.
32
EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql
Normal file
32
EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Databricks notebook source
|
||||
-- DBTITLE 1,产品挂中文名
|
||||
|
||||
|
||||
--Product中文名字,若有超过5个CORP或者MANU生产,则将其报告上排序的优先级调低
|
||||
insert overwrite table tmp.tmp_ims_td_prod_tmp
|
||||
SELECT DISTINCT PROD.PROD_COD
|
||||
FROM dws.dws_ims_td_prod_cn PROD
|
||||
LEFT JOIN dwd.dwd_ims_td_pack_property PACK
|
||||
ON PROD.PROD_COD = PACK.PROD_COD
|
||||
LEFT JOIN dws.dws_ims_td_corp_cn CORP
|
||||
ON PACK.CORP_COD = CORP.CORP_COD
|
||||
WHERE PROD.PROD_DES_C IN
|
||||
(
|
||||
--先计算出超过10个厂家生产的Prod_CN
|
||||
|
||||
--先计算出有多个厂家生产的Prod_CN
|
||||
SELECT PROD.PROD_DES_C
|
||||
FROM dwd.dwd_ims_td_pack_property PACK
|
||||
LEFT JOIN dws.dws_ims_td_prod_cn PROD
|
||||
ON PACK.PROD_COD = PROD.PROD_COD
|
||||
GROUP BY PROD.PROD_DES_C
|
||||
HAVING ( COUNT(DISTINCT CORP_DES) > 5 OR COUNT(DISTINCT MANU_DES) > 5 )
|
||||
AND PROD.PROD_DES_C IS NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
UPDATE dws.dws_ims_td_prod_cn SET RANK_TYPE = 0 where PROD_COD in (
|
||||
SELECT DISTINCT PROD_COD FROM tmp.tmp_ims_td_prod_tmp
|
||||
);
|
||||
BIN
EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql:Zone.Identifier
Normal file
Binary file not shown.
206
EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql
Normal file
206
EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql
Normal file
@@ -0,0 +1,206 @@
|
||||
-- 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
|
||||
;
|
||||
BIN
EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql:Zone.Identifier
Normal file
Binary file not shown.
160
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql
Normal file
160
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql
Normal file
@@ -0,0 +1,160 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_MARKET_BRAND_RATIO (
|
||||
-- MARKET STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- VALUE_BRAND_RATIO FLOAT,
|
||||
-- VALUE_BRAND_RATIO_START STRING,
|
||||
-- VALUE_BRAND_RATIO_END STRING,
|
||||
-- UNIT_BRAND_RATIO FLOAT,
|
||||
-- UNIT_BRAND_START STRING,
|
||||
-- UNIT_BRAND_END STRING,
|
||||
-- COUNTINGUNIT_BRAND_RATIO FLOAT,
|
||||
-- COUNTINGUNIT_BRAND_START STRING,
|
||||
-- COUNTINGUNIT_BRAND_END STRING,
|
||||
-- PDOT_BRAND_RATIO FLOAT,
|
||||
-- PDOT_BRAND_START STRING,
|
||||
-- PDOT_BRAND_END STRING,
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_market_brand_ratio';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_market_brand_ratio';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_MARKET_BRAND_RATIO
|
||||
SELECT
|
||||
DISTINCT
|
||||
T1.MARKET,
|
||||
T1.PACK_CODE,
|
||||
CASE
|
||||
WHEN T2.RATIO IS NOT NULL THEN T2.RATIO
|
||||
ELSE NVL(T5.RATIO, 1) END AS VALUE_BRAND_RATIO,
|
||||
CASE
|
||||
WHEN T2.RATIO IS NOT NULL THEN T2.STARTTIME
|
||||
ELSE NVL(T5.STARTTIME, 200001) END AS VALUE_BRAND_RATIO_START,
|
||||
CASE
|
||||
WHEN T2.RATIO IS NOT NULL THEN T2.ENDTIME
|
||||
ELSE NVL(T5.ENDTIME, 299912) END AS VALUE_BRAND_RATIO_END,
|
||||
CASE
|
||||
WHEN T3.RATIO IS NOT NULL THEN T3.RATIO
|
||||
ELSE NVL(T6.RATIO, 1) END AS UNIT_BRAND_RATIO,
|
||||
CASE
|
||||
WHEN T3.RATIO IS NOT NULL THEN T3.STARTTIME
|
||||
ELSE NVL(T6.STARTTIME, 200001) END AS UNIT_BRAND_START,
|
||||
CASE
|
||||
WHEN T3.RATIO IS NOT NULL THEN T3.ENDTIME
|
||||
ELSE NVL(T6.ENDTIME, 299912) END AS UNIT_BRAND_END,
|
||||
1 AS COUNTINGUNIT_BRAND_RATIO,
|
||||
200001 AS COUNTINGUNIT_BRAND_START,
|
||||
299912 AS COUNTINGUNIT_BRAND_END,
|
||||
CASE
|
||||
WHEN T4.RATIO IS NOT NULL THEN T4.RATIO
|
||||
ELSE NVL(T7.RATIO, 1) END AS PDOT_BRAND_RATIO,
|
||||
CASE
|
||||
WHEN T4.RATIO IS NOT NULL THEN T4.STARTTIME
|
||||
ELSE NVL(T7.STARTTIME, 200001) END AS PDOT_BRAND_START,
|
||||
CASE
|
||||
WHEN T4.RATIO IS NOT NULL THEN T4.ENDTIME
|
||||
ELSE NVL(T7.ENDTIME, 299912) END AS PDOT_BRAND_END,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM DM.DM_TD_EXT_CHPA_MARKET_RATIO T1
|
||||
LEFT JOIN ( --VALUE--PACK
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
PACK_COD,
|
||||
PACK_DES,
|
||||
LEVEL,
|
||||
TYPE,
|
||||
CAST(RATIO AS FLOAT) AS RATIO,
|
||||
CAST(STARTTIME AS INT) STARTTIME,
|
||||
CAST(ENDTIME AS INT) ENDTIME
|
||||
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
|
||||
WHERE UPPER(TYPE) = 'VALUE' AND UPPER(LEVEL) = 'PACK'
|
||||
) T2 ON T1.MARKET = T2.MARKET AND T1.PACK_CODE = T2.PACK_COD
|
||||
LEFT JOIN ( --UNIT--PACK
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
PACK_COD,
|
||||
PACK_DES,
|
||||
LEVEL,
|
||||
TYPE,
|
||||
CAST(RATIO AS FLOAT) AS RATIO,
|
||||
CAST(STARTTIME AS INT) STARTTIME,
|
||||
CAST(ENDTIME AS INT) ENDTIME
|
||||
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
|
||||
WHERE UPPER(TYPE) = 'UNIT' AND UPPER(LEVEL) = 'PACK'
|
||||
) T3 ON T1.MARKET = T3.MARKET AND T1.PACK_CODE = T3.PACK_COD
|
||||
LEFT JOIN ( --COUNTINGUNIT--PACK
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
PACK_COD,
|
||||
PACK_DES,
|
||||
LEVEL,
|
||||
TYPE,
|
||||
CAST(RATIO AS FLOAT) AS RATIO,
|
||||
CAST(STARTTIME AS INT) STARTTIME,
|
||||
CAST(ENDTIME AS INT) ENDTIME
|
||||
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
|
||||
WHERE UPPER(TYPE) = 'COUNTINGUNIT' AND UPPER(LEVEL) = 'PACK'
|
||||
) T4 ON T1.MARKET = T4.MARKET AND T1.PACK_CODE = T4.PACK_COD
|
||||
LEFT JOIN ( --VALUE--MOLECULE
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
PACK_COD,
|
||||
PACK_DES,
|
||||
LEVEL,
|
||||
TYPE,
|
||||
CAST(RATIO AS FLOAT) AS RATIO,
|
||||
CAST(STARTTIME AS INT) STARTTIME,
|
||||
CAST(ENDTIME AS INT) ENDTIME
|
||||
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
|
||||
WHERE UPPER(TYPE) = 'VALUE' AND UPPER(LEVEL) = 'MOLECULE'
|
||||
) T5 ON T1.MARKET = T5.MARKET AND T1.CMPS_CODE = T5.CMPS_COD
|
||||
LEFT JOIN ( --UNIT--MOLECULE
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
PACK_COD,
|
||||
PACK_DES,
|
||||
LEVEL,
|
||||
TYPE,
|
||||
CAST(RATIO AS FLOAT) AS RATIO,
|
||||
CAST(STARTTIME AS INT) STARTTIME,
|
||||
CAST(ENDTIME AS INT) ENDTIME
|
||||
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
|
||||
WHERE UPPER(TYPE) = 'UNIT' AND UPPER(LEVEL) = 'MOLECULE'
|
||||
) T6 ON T1.MARKET = T6.MARKET AND T1.CMPS_CODE = T6.CMPS_COD
|
||||
LEFT JOIN ( --COUNTINGUNIT--MOLECULE
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
CMPS_COD,
|
||||
CMPS_DES,
|
||||
PACK_COD,
|
||||
PACK_DES,
|
||||
LEVEL,
|
||||
TYPE,
|
||||
CAST(RATIO AS FLOAT) AS RATIO,
|
||||
CAST(STARTTIME AS INT) STARTTIME,
|
||||
CAST(ENDTIME AS INT) ENDTIME
|
||||
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
|
||||
WHERE UPPER(TYPE) = 'COUNTINGUNIT' AND UPPER(LEVEL) = 'MOLECULE'
|
||||
) T7 ON T1.MARKET = T7.MARKET
|
||||
AND T1.CMPS_CODE = T7.CMPS_COD
|
||||
Binary file not shown.
71
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql
Normal file
71
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql
Normal file
@@ -0,0 +1,71 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING
|
||||
-- (
|
||||
-- PACK_CODE STRING,
|
||||
-- MARKET STRING,
|
||||
-- CLASS STRING,
|
||||
-- KEY_COMPETITOR STRING,
|
||||
-- MARKET_RATIO STRING,
|
||||
-- STARTTIME STRING,
|
||||
-- ENDTIME STRING,
|
||||
-- VALUE_BRAND_RATIO STRING,
|
||||
-- VALUE_BRAND_RATIO_START STRING,
|
||||
-- VALUE_BRAND_RATIO_END STRING,
|
||||
-- UNIT_BRAND_RATIO STRING,
|
||||
-- UNIT_BRAND_START STRING,
|
||||
-- UNIT_BRAND_END STRING,
|
||||
-- COUNTINGUNIT_BRAND_RATIO STRING,
|
||||
-- COUNTINGUNIT_BRAND_START STRING,
|
||||
-- COUNTINGUNIT_BRAND_END STRING,
|
||||
-- PDOT_BRAND_RATIO STRING,
|
||||
-- PDOT_BRAND_START STRING,
|
||||
-- PDOT_BRAND_END STRING,
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP
|
||||
-- )
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_market_pack_mapping';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_market_pack_mapping';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING
|
||||
SELECT DISTINCT
|
||||
T1.PACK_CODE,
|
||||
T1.MARKET,
|
||||
T4.CLASS,
|
||||
T5.KEY_COMPETITOR,
|
||||
T2.MARKET_RATIO,
|
||||
T2.STARTTIME,
|
||||
T2.ENDTIME,
|
||||
T3.VALUE_BRAND_RATIO,
|
||||
T3.VALUE_BRAND_RATIO_START,
|
||||
T3.VALUE_BRAND_RATIO_END,
|
||||
T3.UNIT_BRAND_RATIO,
|
||||
T3.UNIT_BRAND_START,
|
||||
T3.UNIT_BRAND_END,
|
||||
T3.COUNTINGUNIT_BRAND_RATIO,
|
||||
T3.COUNTINGUNIT_BRAND_START,
|
||||
T3.COUNTINGUNIT_BRAND_END,
|
||||
T3.PDOT_BRAND_RATIO,
|
||||
T3.PDOT_BRAND_START,
|
||||
T3.PDOT_BRAND_END,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM
|
||||
DM.DM_TD_EXT_CHPA_PACK2MARKET T1
|
||||
LEFT JOIN DM.DM_TD_EXT_CHPA_MARKET_RATIO T2
|
||||
ON T1.MARKET = T2.MARKET
|
||||
AND T1.PACK_CODE = T2.PACK_CODE
|
||||
LEFT JOIN DM.DM_TD_EXT_CHPA_MARKET_BRAND_RATIO T3
|
||||
ON T1.MARKET = T3.MARKET
|
||||
AND T1.PACK_CODE = T3.PACK_CODE
|
||||
LEFT JOIN DM.DM_TD_EXT_CHPA_PACK2MARKET_CLASS T4
|
||||
ON T1.PACK_CODE = T4.PACK_CODE
|
||||
AND T1.MARKET = T4.MARKET
|
||||
LEFT JOIN DM.DM_TD_EXT_CHPA_PACK2MARKET_KEYCOMPETITOR T5
|
||||
ON T1.PACK_CODE = T5.PACK_CODE
|
||||
AND T1.MARKET = T5.MARKET
|
||||
WHERE
|
||||
UPPER(T1.MARKET) NOT LIKE "%ALL%"
|
||||
Binary file not shown.
30
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql
Normal file
30
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_MARKET_RATIO (
|
||||
-- MARKET STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- CMPS_CODE STRING,
|
||||
-- STARTTIME STRING,
|
||||
-- ENDTIME STRING,
|
||||
-- MARKET_RATIO STRING,
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_market_ratio';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_market_ratio';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_MARKET_RATIO
|
||||
SELECT
|
||||
DISTINCT
|
||||
MARKET,
|
||||
PACK_CODE,
|
||||
CMPS_CODE,
|
||||
STARTTIME,
|
||||
ENDTIME,
|
||||
MARKET_RATIO,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM DM.DM_TD_EXT_CHPA_PACK2MARKET
|
||||
WHERE UPPER(MARKET) NOT LIKE '%ALL%'
|
||||
BIN
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql:Zone.Identifier
Normal file
Binary file not shown.
327
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql
Normal file
327
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql
Normal file
@@ -0,0 +1,327 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_PACK2MARKET (
|
||||
-- MARKET STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- PACK_DESC STRING,
|
||||
-- STGH_DESC STRING,
|
||||
-- PACK_LCH STRING,
|
||||
-- PROD_CODE STRING,
|
||||
-- CMPS_CODE STRING,
|
||||
-- CMPS_DESC STRING,
|
||||
-- ATC1_CODE STRING,
|
||||
-- ATC2_CODE STRING,
|
||||
-- ATC3_CODE STRING,
|
||||
-- ATC4_CODE STRING,
|
||||
-- APP1_CODE STRING,
|
||||
-- APP2_CODE STRING,
|
||||
-- APP3_CODE STRING,
|
||||
-- BIO_DESC STRING,
|
||||
-- GENE_ORIG_DESC STRING,
|
||||
-- ETH_OTC_DESC STRING,
|
||||
-- NRDL_DESC STRING,
|
||||
-- NRDL_ENTRY_DATE STRING,
|
||||
-- EDL_DESC STRING,
|
||||
-- TCM_DESC STRING,
|
||||
-- PAED_DESC STRING,
|
||||
-- GQCE_DESC STRING,
|
||||
-- VBP_DESC STRING,
|
||||
-- MANU_CODE STRING,
|
||||
-- MANU_DESC STRING,
|
||||
-- MNFL_CODE STRING,
|
||||
-- MNFL_DESC STRING,
|
||||
-- CORP_CODE STRING,
|
||||
-- CORP_DESC STRING,
|
||||
-- BRANDTYPE STRING,
|
||||
-- BU STRING,
|
||||
-- STARTTIME STRING,
|
||||
-- ENDTIME STRING,
|
||||
-- MARKET_RATIO STRING,
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack2market';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack2market';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_PACK2MARKET_KEYCOMPETITOR (
|
||||
-- KEY_COMPETITOR STRING,
|
||||
-- MARKET STRING,
|
||||
-- PACK_CODE STRING)
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack2market_keycompetitor';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack2market_keycompetitor';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- CREATE or REPLACE TABLE DM.DM_TD_EXT_CHPA_PACK2MARKET_CLASS (
|
||||
-- MARKET STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- CLASS STRING)
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack2market_class';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack2market_class';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 使用 EXCEPT(集合差操作)简化逻辑
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_PACK2MARKET
|
||||
-- 包含规则
|
||||
SELECT DISTINCT
|
||||
T2.MARKET,
|
||||
T1.PACK_CODE,
|
||||
T1.PACK_DESC,
|
||||
T1.STGH_DESC,
|
||||
T1.PACK_LCH,
|
||||
T1.PROD_CODE,
|
||||
T1.CMPS_CODE,
|
||||
T1.CMPS_DESC,
|
||||
T1.ATC1_CODE,
|
||||
T1.ATC2_CODE,
|
||||
T1.ATC3_CODE,
|
||||
T1.ATC4_CODE,
|
||||
T1.APP1_CODE,
|
||||
T1.APP2_CODE,
|
||||
T1.APP3_CODE,
|
||||
T1.BIO_DESC,
|
||||
T1.GENE_ORIG_DESC AS GENE_ORIG,
|
||||
T1.ETH_OTC_DESC AS ETH_OTC_D,
|
||||
T1.NRDL_DESC,
|
||||
T1.NRDL_ENTRY_DATE AS NRDL_ENTR,
|
||||
T1.EDL_DESC,
|
||||
T1.TCM_DESC,
|
||||
T1.PAED_DESC,
|
||||
T1.GQCE_DESC,
|
||||
T1.VBP_DESC,
|
||||
T1.MANU_CODE,
|
||||
T1.MANU_DESC,
|
||||
T1.MNFL_CODE,
|
||||
T1.MNFL_DESC,
|
||||
T1.CORP_CODE,
|
||||
T1.CORP_DESC,
|
||||
T1.BRANDTYPE,
|
||||
T2.BU,
|
||||
T2.STARTTIME,
|
||||
T2.ENDTIME,
|
||||
COALESCE(T2.EXTEND_MARKET_RATIO, '1') AS MARKET_RATIO,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM DM.DM_TD_EXT_CHPA_PACK_PROPERTY AS T1
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
MARKET,
|
||||
BU,
|
||||
STARTTIME,
|
||||
ENDTIME,
|
||||
EXTEND_MARKET_RATIO,
|
||||
ATC1_CODE,
|
||||
ATC2_CODE,
|
||||
ATC3_CODE,
|
||||
ATC4_CODE,
|
||||
NFC1_CODE,
|
||||
NFC2_CODE,
|
||||
NFC3_CODE,
|
||||
CORPORATION_CODE,
|
||||
MANUFACTURER_CODE,
|
||||
PRODUCT_CODE,
|
||||
PACK_CODE,
|
||||
STRENGTH,
|
||||
MOLECULE_CODE
|
||||
FROM DWD.DWD_GND_IMS_TBLMARKET_BYMONTH
|
||||
WHERE EXTEND_MARKET IS NULL AND (NOT_IN_FLAG IS NULL OR NOT_IN_FLAG = '1')
|
||||
) AS T2
|
||||
ON (T2.ATC1_CODE IS NULL OR T1.ATC1_CODE = T2.ATC1_CODE)
|
||||
AND (T2.ATC2_CODE IS NULL OR T1.ATC2_CODE = T2.ATC2_CODE)
|
||||
AND (T2.ATC3_CODE IS NULL OR T1.ATC3_CODE = T2.ATC3_CODE)
|
||||
AND (T2.ATC4_CODE IS NULL OR T1.ATC4_CODE = T2.ATC4_CODE)
|
||||
AND (T2.NFC1_CODE IS NULL OR T1.APP1_CODE = T2.NFC1_CODE)
|
||||
AND (T2.NFC2_CODE IS NULL OR T1.APP2_CODE = T2.NFC2_CODE)
|
||||
AND (T2.NFC3_CODE IS NULL OR T1.APP3_CODE = T2.NFC3_CODE)
|
||||
AND (T2.CORPORATION_CODE IS NULL OR T1.CORP_CODE = T2.CORPORATION_CODE)
|
||||
AND (T2.MANUFACTURER_CODE IS NULL OR T1.MANU_CODE = T2.MANUFACTURER_CODE)
|
||||
AND (T2.PRODUCT_CODE IS NULL OR T1.PROD_CODE = T2.PRODUCT_CODE)
|
||||
AND (T2.PACK_CODE IS NULL OR T1.PACK_CODE = T2.PACK_CODE)
|
||||
AND (T2.STRENGTH IS NULL OR T1.STGH_DESC = T2.STRENGTH)
|
||||
AND (T2.MOLECULE_CODE IS NULL OR T1.CMPS_CODE = T2.MOLECULE_CODE)
|
||||
WHERE T2.MARKET IS NOT NULL
|
||||
|
||||
EXCEPT
|
||||
|
||||
-- 排除规则
|
||||
SELECT DISTINCT
|
||||
T2.MARKET,
|
||||
T1.PACK_CODE,
|
||||
T1.PACK_DESC,
|
||||
T1.STGH_DESC,
|
||||
T1.PACK_LCH,
|
||||
T1.PROD_CODE,
|
||||
T1.CMPS_CODE,
|
||||
T1.CMPS_DESC,
|
||||
T1.ATC1_CODE,
|
||||
T1.ATC2_CODE,
|
||||
T1.ATC3_CODE,
|
||||
T1.ATC4_CODE,
|
||||
T1.APP1_CODE,
|
||||
T1.APP2_CODE,
|
||||
T1.APP3_CODE,
|
||||
T1.BIO_DESC,
|
||||
T1.GENE_ORIG_DESC AS GENE_ORIG,
|
||||
T1.ETH_OTC_DESC AS ETH_OTC_D,
|
||||
T1.NRDL_DESC,
|
||||
T1.NRDL_ENTRY_DATE AS NRDL_ENTR,
|
||||
T1.EDL_DESC,
|
||||
T1.TCM_DESC,
|
||||
T1.PAED_DESC,
|
||||
T1.GQCE_DESC,
|
||||
T1.VBP_DESC,
|
||||
T1.MANU_CODE,
|
||||
T1.MANU_DESC,
|
||||
T1.MNFL_CODE,
|
||||
T1.MNFL_DESC,
|
||||
T1.CORP_CODE,
|
||||
T1.CORP_DESC,
|
||||
T1.BRANDTYPE,
|
||||
T2.BU,
|
||||
T2.STARTTIME,
|
||||
T2.ENDTIME,
|
||||
COALESCE(T2.EXTEND_MARKET_RATIO, '1') AS MARKET_RATIO,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM DM.DM_TD_EXT_CHPA_PACK_PROPERTY AS T1
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
MARKET,
|
||||
BU,
|
||||
STARTTIME,
|
||||
ENDTIME,
|
||||
EXTEND_MARKET_RATIO,
|
||||
ATC1_CODE,
|
||||
ATC2_CODE,
|
||||
ATC3_CODE,
|
||||
ATC4_CODE,
|
||||
NFC1_CODE,
|
||||
NFC2_CODE,
|
||||
NFC3_CODE,
|
||||
CORPORATION_CODE,
|
||||
MANUFACTURER_CODE,
|
||||
PRODUCT_CODE,
|
||||
PACK_CODE,
|
||||
STRENGTH,
|
||||
MOLECULE_CODE
|
||||
FROM DWD.DWD_GND_IMS_TBLMARKET_BYMONTH
|
||||
WHERE EXTEND_MARKET IS NULL AND NOT_IN_FLAG = '0'
|
||||
) AS T2
|
||||
ON (T2.ATC1_CODE IS NULL OR T1.ATC1_CODE = T2.ATC1_CODE)
|
||||
AND (T2.ATC2_CODE IS NULL OR T1.ATC2_CODE = T2.ATC2_CODE)
|
||||
AND (T2.ATC3_CODE IS NULL OR T1.ATC3_CODE = T2.ATC3_CODE)
|
||||
AND (T2.ATC4_CODE IS NULL OR T1.ATC4_CODE = T2.ATC4_CODE)
|
||||
AND (T2.NFC1_CODE IS NULL OR T1.APP1_CODE = T2.NFC1_CODE)
|
||||
AND (T2.NFC2_CODE IS NULL OR T1.APP2_CODE = T2.NFC2_CODE)
|
||||
AND (T2.NFC3_CODE IS NULL OR T1.APP3_CODE = T2.NFC3_CODE)
|
||||
AND (T2.CORPORATION_CODE IS NULL OR T1.CORP_CODE = T2.CORPORATION_CODE)
|
||||
AND (T2.MANUFACTURER_CODE IS NULL OR T1.MANU_CODE = T2.MANUFACTURER_CODE)
|
||||
AND (T2.PRODUCT_CODE IS NULL OR T1.PROD_CODE = T2.PRODUCT_CODE)
|
||||
AND (T2.PACK_CODE IS NULL OR T1.PACK_CODE = T2.PACK_CODE)
|
||||
AND (T2.STRENGTH IS NULL OR T1.STGH_DESC = T2.STRENGTH)
|
||||
AND (T2.MOLECULE_CODE IS NULL OR T1.CMPS_CODE = T2.MOLECULE_CODE)
|
||||
WHERE T2.MARKET IS NOT NULL;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_PACK2MARKET_KEYCOMPETITOR
|
||||
WITH kc AS (
|
||||
SELECT
|
||||
keycompetitor, no,
|
||||
ROW_NUMBER() OVER (ORDER BY
|
||||
CASE
|
||||
WHEN ATC1_Code IS NOT NULL THEN 1
|
||||
WHEN ATC2_Code IS NOT NULL THEN 2
|
||||
WHEN ATC3_Code IS NOT NULL THEN 3
|
||||
WHEN ATC4_Code IS NOT NULL THEN 4
|
||||
WHEN Molecule_Code IS NOT NULL THEN 5
|
||||
WHEN Product_Code IS NOT NULL THEN 6
|
||||
WHEN Pack_Code IS NOT NULL THEN 7
|
||||
ELSE 999
|
||||
END,
|
||||
CASE WHEN NFC1_CODE IS NULL THEN 0 ELSE 1 END,
|
||||
CASE WHEN NFC2_CODE IS NULL THEN 0 ELSE 1 END,
|
||||
CASE WHEN NFC3_CODE IS NULL THEN 0 ELSE 1 END
|
||||
) AS no1,
|
||||
ATC1_Code, ATC2_Code, ATC3_Code, ATC4_Code,
|
||||
NFC1_Code, NFC2_Code, NFC3_Code,
|
||||
corporation_code, Manufacturer_Code,
|
||||
Product_Code, Pack_Code, Strength, Molecule_Code, market
|
||||
FROM dwd.dwd_gnd_ims_tblkeycompetitor
|
||||
),
|
||||
joined AS (
|
||||
SELECT
|
||||
/*+ BROADCAST(kc) */
|
||||
COALESCE(kc.keycompetitor, 'OTHERS') AS Key_Competitor, -- ✅ UPDATE 逻辑内联
|
||||
t1.market, t1.PACK_CODE
|
||||
/*bug 调试区
|
||||
,
|
||||
kc.no,
|
||||
kc.no1,
|
||||
t1.PROD_COD, t1.CMPS_COD, t1.CMPS_DES,
|
||||
t1.ATC1_COD, t1.ATC2_COD, t1.ATC3_COD, t1.ATC4_COD,
|
||||
t1.APP1_COD, t1.APP2_COD, t1.APP3_COD,
|
||||
t1.BIO_DESC, t1.GENE_ORIG_DESC, t1.ETH_OTC_DESC,
|
||||
t1.NRDL_DESC, t1.NRDL_Entry_Date, t1.EDL_DESC, t1.TCM_DESC,
|
||||
t1.PAED_DESC, t1.GQCE_DESC, t1.VBP_DESC,
|
||||
t1.MANU_COD, t1.MANU_DES, t1.MNFL_COD, t1.MNFL_DES,
|
||||
t1.CORP_COD, t1.CORP_DES, t1.BrandType, t1.bu, t1.Market_Ratio
|
||||
*/
|
||||
,ROW_NUMBER() OVER (
|
||||
PARTITION BY t1.market, t1.PACK_CODE, t1.PROD_CODE
|
||||
ORDER BY kc.no1 DESC, kc.no DESC
|
||||
) AS _rn
|
||||
FROM DM.DM_TD_EXT_CHPA_PACK2MARKET t1
|
||||
LEFT JOIN kc
|
||||
ON (kc.ATC1_Code IS NULL OR t1.ATC1_CODE = kc.ATC1_Code)
|
||||
AND (kc.ATC2_Code IS NULL OR t1.ATC2_CODE = kc.ATC2_Code)
|
||||
AND (kc.ATC3_Code IS NULL OR t1.ATC3_CODE = kc.ATC3_Code)
|
||||
AND (kc.ATC4_Code IS NULL OR t1.ATC4_CODE = kc.ATC4_Code)
|
||||
AND (kc.NFC1_Code IS NULL OR t1.APP1_CODE = kc.NFC1_Code)
|
||||
AND (kc.NFC2_Code IS NULL OR t1.APP2_CODE = kc.NFC2_Code)
|
||||
AND (kc.NFC3_Code IS NULL OR t1.APP3_CODE = kc.NFC3_Code)
|
||||
AND (kc.corporation_code IS NULL OR t1.CORP_CODE = kc.corporation_code)
|
||||
AND (kc.Manufacturer_Code IS NULL OR t1.MANU_CODE = kc.Manufacturer_Code)
|
||||
AND (kc.Product_Code IS NULL OR t1.PROD_CODE = kc.Product_Code)
|
||||
AND (kc.Pack_Code IS NULL OR t1.PACK_CODE = kc.Pack_Code)
|
||||
AND (kc.Strength IS NULL OR t1.STGH_DESC = kc.Strength)
|
||||
AND (kc.Molecule_Code IS NULL OR t1.CMPS_CODE = kc.Molecule_Code)
|
||||
AND (kc.market IS NULL OR t1.market = kc.market)
|
||||
)
|
||||
SELECT distinct Key_Competitor,market,pack_code
|
||||
FROM joined
|
||||
WHERE _rn = 1;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,CLASS
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_PACK2MARKET_CLASS
|
||||
SELECT
|
||||
/*+ BROADCAST(T2) */
|
||||
DISTINCT
|
||||
T1.MARKET,
|
||||
T1.PACK_CODE,
|
||||
COALESCE( T2.CLASS, 'OTHERS') AS CLASS
|
||||
FROM DM.DM_TD_EXT_CHPA_PACK2MARKET T1
|
||||
LEFT JOIN DWD.DWD_GND_TBLCLASS T2
|
||||
ON (T2.MARKET IS NULL OR T1.MARKET = T2.MARKET)
|
||||
AND (T2.PACK_CODE IS NULL OR T1.PACK_CODE = T2.PACK_CODE)
|
||||
AND (T2.PRODUCT_CODE IS NULL OR T1.PROD_CODE = T2.PRODUCT_CODE)
|
||||
AND (T2.MOLECULE_CODE IS NULL OR T1.CMPS_CODE = T2.MOLECULE_CODE)
|
||||
AND (T2.CORPORATION_CODE IS NULL OR T1.CORP_CODE = T2.CORPORATION_CODE)
|
||||
AND (T2.MANUFACTURER_CODE IS NULL OR T1.MANU_CODE = T2.MANUFACTURER_CODE)
|
||||
AND (T2.ATC1_CODE IS NULL OR T1.ATC1_CODE = T2.ATC1_CODE)
|
||||
AND (T2.ATC2_CODE IS NULL OR T1.ATC2_CODE = T2.ATC2_CODE)
|
||||
AND (T2.ATC3_CODE IS NULL OR T1.ATC3_CODE = T2.ATC3_CODE)
|
||||
AND (T2.ATC4_CODE IS NULL OR T1.ATC4_CODE = T2.ATC4_CODE)
|
||||
AND (T2.NFC1_CODE IS NULL OR T1.APP1_CODE = T2.NFC1_CODE)
|
||||
AND (T2.NFC2_CODE IS NULL OR T1.APP2_CODE = T2.NFC2_CODE)
|
||||
AND (T2.NFC3_CODE IS NULL OR T1.APP3_CODE = T2.NFC3_CODE)
|
||||
AND (T2.STRENGTH IS NULL OR T1.STGH_DESC = T2.STRENGTH)
|
||||
BIN
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql:Zone.Identifier
Normal file
Binary file not shown.
147
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql
Normal file
147
EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql
Normal file
@@ -0,0 +1,147 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_PACK_PROPERTY
|
||||
-- (
|
||||
-- -- MARKET_PACK_KEY STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- PACK_DESC STRING,
|
||||
-- STGH_DESC STRING,
|
||||
-- PACK_LCH STRING,
|
||||
-- FAMILY_CODE STRING,
|
||||
-- FAMILY_NAME STRING,
|
||||
-- PROD_CODE STRING,
|
||||
-- PROD_DESC STRING,
|
||||
-- PROD_DESC_C STRING,
|
||||
-- CMPS_CODE STRING,
|
||||
-- CMPS_DESC STRING,
|
||||
-- CMPS_DESC_C STRING,
|
||||
-- ATC1_CODE STRING,
|
||||
-- ATC2_CODE STRING,
|
||||
-- ATC3_CODE STRING,
|
||||
-- ATC4_CODE STRING,
|
||||
-- APP1_CODE STRING,
|
||||
-- APP2_CODE STRING,
|
||||
-- APP3_CODE STRING,
|
||||
-- BIO_DESC STRING,
|
||||
-- GENE_ORIG_DESC STRING,
|
||||
-- ETH_OTC_DESC STRING,
|
||||
-- NRDL_DESC STRING,
|
||||
-- NRDL_ENTRY_DATE STRING,
|
||||
-- EDL_DESC STRING,
|
||||
-- TCM_DESC STRING,
|
||||
-- PAED_DESC STRING,
|
||||
-- GQCE_DESC STRING,
|
||||
-- VBP_DESC_V STRING,
|
||||
-- VBP_DESC STRING,
|
||||
-- MANU_CODE STRING,
|
||||
-- MANU_DESC STRING,
|
||||
-- MANU_DESC_C STRING,
|
||||
-- MNFL_CODE STRING,
|
||||
-- MNFL_DESC STRING,
|
||||
-- CORP_CODE STRING,
|
||||
-- CORP_DESC STRING,
|
||||
-- CORP_DESC_C STRING,
|
||||
-- BRANDTYPE STRING,
|
||||
-- -- MARKET STRING,
|
||||
-- -- KEY_COMPETITOR STRING,
|
||||
-- IS_AZ STRING,
|
||||
-- AZ_MAIN STRING,
|
||||
-- -- AZ_RELATED STRING,
|
||||
-- ATC1_DESC STRING,
|
||||
-- ATC1_DESC_C STRING,
|
||||
-- ATC2_DESC STRING,
|
||||
-- ATC2_DESC_C STRING,
|
||||
-- ATC3_DESC STRING,
|
||||
-- ATC3_DESC_C STRING,
|
||||
-- ATC4_DESC STRING,
|
||||
-- ATC4_DESC_C STRING,
|
||||
-- APP1_DESC STRING,
|
||||
-- APP1_DESC_C STRING,
|
||||
-- APP2_DESC STRING,
|
||||
-- APP2_DESC_C STRING,
|
||||
-- APP3_DESC STRING,
|
||||
-- APP3_DESC_C STRING,
|
||||
-- -- CLASS STRING,
|
||||
-- -- MARKET_RATIO STRING,
|
||||
-- COUNTINGUNIT STRING,
|
||||
-- VBP_BRAND STRING,
|
||||
-- REPLENISH_FALG STRING,
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP
|
||||
-- )
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack_property';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_pack_property';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_EXT_CHPA_PACK_PROPERTY
|
||||
SELECT
|
||||
-- MARKET_PACK_KEY,
|
||||
PACK_COD AS PACK_CODE,
|
||||
PACK_DES AS PACK_DESC,
|
||||
STGH_DES AS STGH_DESC,
|
||||
PACK_LCH,
|
||||
FAMILY_CODE,
|
||||
FAMILY_NAME,
|
||||
PROD_COD AS PROD_CODE,
|
||||
PROD_DES AS PROD_DESC,
|
||||
PROD_DES_C AS PROD_DESC_C,
|
||||
CMPS_COD AS CMPS_CODE,
|
||||
CMPS_DES AS CMPS_DESC,
|
||||
CMPS_DES_C AS CMPS_DESC_C,
|
||||
ATC1_COD AS ATC1_CODE,
|
||||
ATC2_COD AS ATC2_CODE,
|
||||
ATC3_COD AS ATC3_CODE,
|
||||
ATC4_COD AS ATC4_CODE,
|
||||
APP1_COD AS APP1_CODE,
|
||||
APP2_COD AS APP2_CODE,
|
||||
APP3_COD AS APP3_CODE,
|
||||
BIO_DESC,
|
||||
GENE_ORIG_DESC,
|
||||
ETH_OTC_DESC,
|
||||
NRDL_DESC,
|
||||
NRDL_ENTRY_DATE,
|
||||
EDL_DESC,
|
||||
TCM_DESC,
|
||||
PAED_DESC,
|
||||
GQCE_DESC,
|
||||
VBP_DESC_V,
|
||||
VBP_DESC,
|
||||
MANU_COD AS MANU_CODE,
|
||||
MANU_DES AS MANU_DESC,
|
||||
MANU_DES_C AS MANU_DESC_C,
|
||||
MNFL_COD AS MNFL_CODE,
|
||||
MNFL_DES AS MNFL_DESC,
|
||||
CORP_COD AS CORP_CODE,
|
||||
CORP_DES AS CORP_DESC,
|
||||
CORP_DES_C AS CORP_DESC_C,
|
||||
BRANDTYPE,
|
||||
-- MARKET,
|
||||
-- KEY_COMPETITOR,
|
||||
IS_AZ,
|
||||
AZ_MAIN,
|
||||
-- AZ_RELATED,
|
||||
ATC1_DES AS ATC1_DESC,
|
||||
ATC1_DES_C AS ATC1_DESC_C,
|
||||
ATC2_DES AS ATC2_DESC,
|
||||
ATC2_DES_C AS ATC2_DESC_C,
|
||||
ATC3_DES AS ATC3_DESC,
|
||||
ATC3_DES_C AS ATC3_DESC_C,
|
||||
ATC4_DES AS ATC4_DESC,
|
||||
ATC4_DES_C AS ATC4_DESC_C,
|
||||
APP1_DES AS APP1_DESC,
|
||||
APP1_DES_C AS APP1_DESC_C,
|
||||
APP2_DES AS APP2_DESC,
|
||||
APP2_DES_C AS APP2_DESC_C,
|
||||
APP3_DES AS APP3_DESC,
|
||||
APP3_DES_C AS APP3_DESC_C,
|
||||
-- CLASS,
|
||||
-- NULL AS MARKET_RATIO,
|
||||
NULL AS COUNTINGUNIT,
|
||||
NULL AS VBP_BRAND,
|
||||
NULL AS REPLENISH_FALG,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM DM.DM_IMS_TD_PACK_PROPERTY
|
||||
;
|
||||
Binary file not shown.
166
EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql
Normal file
166
EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql
Normal file
@@ -0,0 +1,166 @@
|
||||
-- Databricks notebook source
|
||||
-- CREATE OR REPLACE TABLE DM.DM_TF_EXT_CHPA_SALES (
|
||||
-- YYYYMM STRING,
|
||||
-- PACK_CODE STRING,
|
||||
-- CORP_CODE STRING,
|
||||
-- AUDIT_CODE STRING,
|
||||
-- PLATFORM_TYPE STRING,
|
||||
-- STORE_NAME STRING,
|
||||
-- STORE_TYPE STRING,
|
||||
-- REGION_TYPE STRING,
|
||||
-- PACK_FLAG INT,
|
||||
-- PROD_FLAG INT,
|
||||
-- DTP_FLAG INT,
|
||||
-- SALES_UNIT_CAL DECIMAL(38,10),
|
||||
-- SALES_UNIT_CAL_LY DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL_LY DECIMAL(38,10),
|
||||
-- CONUTING_UNIT DECIMAL(38,10),
|
||||
-- CONUTING_UNIT_LY DECIMAL(38,10),
|
||||
-- DATA_SOURCE STRING,
|
||||
-- INST_CODE STRING COMMENT '内部机构编码',
|
||||
-- CMPS_FLAG STRING COMMENT '分子式标签',
|
||||
-- DEPT_NAME STRING COMMENT '科室名称',
|
||||
-- PRESCRIPTION DECIMAL(38,10) COMMENT '处方张数',
|
||||
-- PRESCRIPTION_LY DECIMAL(38,10) COMMENT '去年同期处方张数',
|
||||
-- NEW_CODE STRING COMMENT '主数据关联CODE',
|
||||
-- AREA STRING COMMENT '城市',
|
||||
-- H_LEVEL STRING COMMENT '医院类型',
|
||||
-- REIMBURSE STRING COMMENT '报销情况',
|
||||
-- REIMBURSE_TYPE STRING COMMENT '报销类型',
|
||||
-- PRESCRIPTION_SOURCE STRING COMMENT '处方来源',
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_chpa_sales';
|
||||
-- -- 上面是生产环境location,下面是测试环境location
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_chpa_sales';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW CHPA_SALES AS
|
||||
SELECT
|
||||
A.YYYYMM,
|
||||
A.PACK_COD AS PACK_CODE,
|
||||
A.AUDIT_COD AS AUDIT_CODE,
|
||||
'IQVIA-CHPA(Monthly)' DATA_SOURCE,
|
||||
-------------------------------------
|
||||
SUM(SALES_UNIT_CAL) SALES_UNIT_CAL,
|
||||
SUM(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY,
|
||||
SUM(SALES_VALUE_CAL) SALES_VALUE_CAL,
|
||||
SUM(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY,
|
||||
SUM(CONUTING_UNIT) CONUTING_UNIT,
|
||||
SUM(CONUTING_UNIT_LY) as CONUTING_UNIT_LY,
|
||||
null as prescription,
|
||||
null as prescription_ly,
|
||||
-------------------------------------
|
||||
--Retail藏数逻辑标签------------------
|
||||
1 PACK_FLAG,
|
||||
1 PROD_FLAG,
|
||||
0 DTP_FLAG,
|
||||
null as cmps_flag,
|
||||
-------------------------------------
|
||||
--EC数据标签--------------------------
|
||||
'' PLATFORM_TYPE,
|
||||
'' STORE_NAME,
|
||||
'' STORE_TYPE,
|
||||
-------------------------------------
|
||||
--COUNTY数据标签----------------------
|
||||
'' REGION_TYPE,
|
||||
-------------------------------------
|
||||
--AIA数据标签-------------------------
|
||||
null inst_code,
|
||||
-------------------------------------
|
||||
--XIE HE 数据标签---------------------
|
||||
'' as dept_name,
|
||||
'' as new_code,
|
||||
'' as area,
|
||||
'' as h_level,
|
||||
'' as reimburse,
|
||||
'' as reimburse_type,
|
||||
'' as prescription_source,
|
||||
-------------------------------------
|
||||
'' as CORP_CODE --可以移除,报告没有使用
|
||||
-------------------------------------
|
||||
FROM
|
||||
DM.DM_IMS_TF_SALES A
|
||||
where
|
||||
A.YYYYMM >= '202201'
|
||||
-- AND A.MARKET = 'IMS ALL Market'
|
||||
GROUP BY
|
||||
A.YYYYMM,
|
||||
A.PACK_COD,
|
||||
A.AUDIT_COD
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TF_EXT_CHPA_SALES (
|
||||
YYYYMM,
|
||||
PACK_CODE,
|
||||
AUDIT_CODE,
|
||||
DATA_SOURCE,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
PRESCRIPTION,
|
||||
PRESCRIPTION_LY,
|
||||
PACK_FLAG,
|
||||
PROD_FLAG,
|
||||
DTP_FLAG,
|
||||
CMPS_FLAG,
|
||||
PLATFORM_TYPE,
|
||||
STORE_NAME,
|
||||
STORE_TYPE,
|
||||
REGION_TYPE,
|
||||
INST_CODE,
|
||||
DEPT_NAME,
|
||||
NEW_CODE,
|
||||
AREA,
|
||||
H_LEVEL,
|
||||
REIMBURSE,
|
||||
REIMBURSE_TYPE,
|
||||
PRESCRIPTION_SOURCE,
|
||||
CORP_CODE,
|
||||
ETL_INSERT_DT,
|
||||
ETL_UPDATE_DT
|
||||
)
|
||||
SELECT
|
||||
YYYYMM,
|
||||
NVL (
|
||||
NULLIF(PACK_CODE, ''),
|
||||
CONCAT ('PACK_CODE_', DATA_SOURCE)
|
||||
) AS PACK_CODE,
|
||||
NVL (NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE,
|
||||
DATA_SOURCE,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
PRESCRIPTION,
|
||||
PRESCRIPTION_LY,
|
||||
PACK_FLAG,
|
||||
PROD_FLAG,
|
||||
DTP_FLAG,
|
||||
CMPS_FLAG,
|
||||
PLATFORM_TYPE,
|
||||
STORE_NAME,
|
||||
STORE_TYPE,
|
||||
REGION_TYPE,
|
||||
INST_CODE,
|
||||
DEPT_NAME,
|
||||
NEW_CODE,
|
||||
AREA,
|
||||
H_LEVEL,
|
||||
REIMBURSE,
|
||||
REIMBURSE_TYPE,
|
||||
PRESCRIPTION_SOURCE,
|
||||
CORP_CODE,
|
||||
FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM
|
||||
CHPA_SALES;
|
||||
BIN
EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql:Zone.Identifier
Normal file
Binary file not shown.
58
EXTERNAL/CHPA/03 dm_ims_td_calendar.sql
Normal file
58
EXTERNAL/CHPA/03 dm_ims_td_calendar.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DWS.DWS_IMS_TD_DATE
|
||||
-- 目标表:DM.DM_IMS_TD_CALENDAR,DM.DM_IMS_S_DATE
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--DM 逻辑
|
||||
--DATE
|
||||
INSERT OVERWRITE TABLE DM.DM_IMS_TD_CALENDAR
|
||||
--当前年销量日期日历表缺少的用去年补全
|
||||
SELECT
|
||||
CAST(YM+100 AS INT) AS YYYYMM,
|
||||
CAST(YEAR+1 AS INT) AS YEAR,
|
||||
MONTH,
|
||||
QUARTER,
|
||||
CONCAT(CAST(LEFT(YQ,4) AS INT)+1,QUARTER) AS YQ ,
|
||||
CAST(CONCAT(CAST(YEAR AS INT)+1,'-',MONTH,'-01') AS DATE) AS DAY_DATE,
|
||||
CASE WHEN YM+100= (SELECT MAX(YM) FROM TMP.TMP_IMS_TF_FACT_SALES) THEN 'R' ELSE DATE_FLAG END,
|
||||
CONCAT(CAST(LEFT(HALF_YEAR,4) AS INT)+1,RIGHT(HALF_YEAR,2)) AS HALF_YEAR,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_UPDATE_DT
|
||||
FROM DWS.DWS_IMS_TD_DATE
|
||||
WHERE YEAR+1=(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE)
|
||||
|
||||
--前四年的日历表
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
CAST(YM AS INT) AS YYYYMM,
|
||||
CAST(YEAR AS INT),
|
||||
MONTH,
|
||||
QUARTER,
|
||||
YQ,
|
||||
CAST(CONCAT(YEAR,'-',MONTH,'-01') AS DATE) AS DAY_DATE,
|
||||
DATE_FLAG,
|
||||
HALF_YEAR,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') ETL_UPDATE_DT
|
||||
FROM DWS.DWS_IMS_TD_DATE
|
||||
WHERE YEAR<(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE)
|
||||
AND YEAR+9>(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE)
|
||||
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_IMS_S_DATE
|
||||
SELECT
|
||||
YYYYMM,
|
||||
YEAR,
|
||||
MONTH,
|
||||
QUARTER,
|
||||
YQ,
|
||||
DAY_DATE,
|
||||
DATE_FLAG,
|
||||
HALF_YEAR,
|
||||
ETL_INSERT_DT,
|
||||
ETL_UPDATE_DT
|
||||
FROM DM.DM_IMS_TD_CALENDAR
|
||||
BIN
EXTERNAL/CHPA/03 dm_ims_td_calendar.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_td_calendar.sql:Zone.Identifier
Normal file
Binary file not shown.
67
EXTERNAL/CHPA/03 dm_ims_td_geo.sql
Normal file
67
EXTERNAL/CHPA/03 dm_ims_td_geo.sql
Normal file
@@ -0,0 +1,67 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DM.DM_TD_GEOGRAPHY,DWS.DWS_IMS_TD_GEO
|
||||
-- 目标表:DM.DM_IMS_TD_GEO
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- 20260119 地理数据 我感觉可以拉到前面去
|
||||
--地理维度信息 AUDIT
|
||||
-- 20260122 因为城市数据不再提供,改为硬编码省份数据. BY YUSUO/CHENWU
|
||||
INSERT OVERWRITE TABLE DWS.DWS_IMS_TD_GEO
|
||||
SELECT
|
||||
AUDIT_COD,
|
||||
AUDIT_DES,
|
||||
AUDIT_DES_C,
|
||||
AUDIT_TYPE,
|
||||
CITY_TIER,
|
||||
AZ_CITY_TIER,
|
||||
PROVINCE,
|
||||
PROVINCE_C,
|
||||
REGIONCENTER,
|
||||
ETL_INSERT_DT,
|
||||
ETL_UPDATE_DT
|
||||
FROM
|
||||
TMP.TMP_PROVINCE_RAWDATA
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
CREATE OR REPLACE TEMPORARY VIEW DIM_PROVINCE
|
||||
AS
|
||||
SELECT
|
||||
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 ----------
|
||||
|
||||
--DM 地理纬度表
|
||||
INSERT OVERWRITE TABLE DM.DM_IMS_TD_GEO
|
||||
SELECT DISTINCT
|
||||
T1.AUDIT_COD,
|
||||
T1.AUDIT_DES AS CITY,
|
||||
T1.AUDIT_DES_C AS CITY_C,
|
||||
T1.AUDIT_TYPE AS CITY_TYPE,
|
||||
T1.CITY_TIER,
|
||||
T1.AZ_CITY_TIER,
|
||||
T1.PROVINCE,
|
||||
T1.PROVINCE_C,
|
||||
T2.PROVINCE_CODE,
|
||||
T2.PROVINCE_NAME AS CITY_MAP,
|
||||
T2.PROVINCE_NAME,
|
||||
T1.REGIONCENTER AS REGION_CENTER,
|
||||
T1.ETL_INSERT_DT,
|
||||
T1.ETL_UPDATE_DT
|
||||
FROM
|
||||
DWS.DWS_IMS_TD_GEO AS T1
|
||||
LEFT JOIN DIM_PROVINCE AS T2 ON T1.AUDIT_COD = T2.PROVINCE_CODE
|
||||
BIN
EXTERNAL/CHPA/03 dm_ims_td_geo.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_td_geo.sql:Zone.Identifier
Normal file
Binary file not shown.
35
EXTERNAL/CHPA/03 dm_ims_td_market_property.sql
Normal file
35
EXTERNAL/CHPA/03 dm_ims_td_market_property.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DWD.DWD_TD_IMS_MARKET_TA_ORDER
|
||||
-- 目标表:DM.DM_IMS_TD_MARKET_PROPERTY
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
update dwd.dwd_td_ims_market_ta_order
|
||||
set
|
||||
market = 'Pulmicort VBP Benchmark Market'
|
||||
where
|
||||
market = 'Pumicort VBP Benchmark Market'
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--dm market property 市场相关属性和market&ta 的排序 by qingli 20230425
|
||||
insert overwrite table dm.dm_ims_td_market_property
|
||||
select
|
||||
market_order,
|
||||
bu as bu,
|
||||
ta as ta_key,
|
||||
case
|
||||
when ta = 'ONC' then 'ONCO'
|
||||
else ta
|
||||
end as ta,
|
||||
market as market_key,
|
||||
case
|
||||
when market = 'ONC Market' then 'ONCO Market'
|
||||
else market
|
||||
end as market,
|
||||
null as svg,
|
||||
ta_order,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
dwd.dwd_td_ims_market_ta_order
|
||||
BIN
EXTERNAL/CHPA/03 dm_ims_td_market_property.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_td_market_property.sql:Zone.Identifier
Normal file
Binary file not shown.
615
EXTERNAL/CHPA/03 dm_ims_td_org.sql
Normal file
615
EXTERNAL/CHPA/03 dm_ims_td_org.sql
Normal file
@@ -0,0 +1,615 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DM.dm_td_org,dm.dm_td_territory_indication,dm.dm_td_date_config,dm.dm_ims_tf_sales
|
||||
-- 目标表:dm.dm_ims_td_org
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %run ../../../Common/config
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
create or replace temporary view dm_td_org_tmp as
|
||||
SELECT
|
||||
org_key,
|
||||
mr_trty_tag,
|
||||
district_code,
|
||||
rsm_name,
|
||||
rc_name,
|
||||
p2.region_name,
|
||||
p2.rsd_kcode,
|
||||
p2.rsd_name,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bu_code = 'PC12' then 'PC09'
|
||||
else p2.bu_code
|
||||
end bu_code,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bu_report = 'EC' THEN 'Retail'
|
||||
ELSE p2.bu_report
|
||||
end bu_report,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.sub_bu_code = 'NA27' then 'NA06'
|
||||
else p2.sub_bu_code
|
||||
end sub_bu_code,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.sub_bu_name = 'EC' then 'Retail'
|
||||
else p2.sub_bu_name
|
||||
end sub_bu_name,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.sub_bu_name_en = 'EC' then 'Retail'
|
||||
else p2.sub_bu_name_en
|
||||
end sub_bu_name_en,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bu_name = 'EC' then 'Retail'
|
||||
else p2.bu_name
|
||||
end bu_name,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bu_name_en = 'EC' then 'Retail'
|
||||
else p2.bu_name_en
|
||||
end bu_name_en,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559'
|
||||
else p2.nsd_kcode
|
||||
end nsd_kcode,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bu_name = 'EC'
|
||||
and p2.nsd_name = 'Vacant' then '李白杨'
|
||||
else p2.nsd_name
|
||||
end nsd_name,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001'
|
||||
else p2.nsd_trty_code
|
||||
end nsd_trty_code,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V'
|
||||
else p2.bsd_kcode
|
||||
end bsd_kcode,
|
||||
CASE
|
||||
WHEN p2.yyyymm >= '202601'
|
||||
and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001'
|
||||
else p2.bsd_trty_code
|
||||
end bsd_trty_code,
|
||||
p2.rsm_kcode,
|
||||
p2.rc_code,
|
||||
p2.rc_name_en,
|
||||
p2.region_code,
|
||||
p2.region_name_en,
|
||||
BU_CATEGORY,
|
||||
yyyymm,
|
||||
mr_trty_code,
|
||||
mr_kcode,
|
||||
dsm_trty_code,
|
||||
rsm_trty_code,
|
||||
dsm_kcode,
|
||||
rsd_trty_code
|
||||
FROM
|
||||
DM.dm_td_org P2
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--dm_org --使用和performance cvh 的org架构
|
||||
-- insert overwrite table tmp.tmp_ims_td_org
|
||||
create or replace temporary view tmp_ims_td_org as
|
||||
select distinct
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
case
|
||||
when rsm_name = 'Vacant' then concat (rsm_trty_code, '_V')
|
||||
else rsm_name
|
||||
end as rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
case
|
||||
when rsd_name = 'Vacant' then concat (rsd_trty_code, '_V')
|
||||
else rsd_name
|
||||
end as rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
case
|
||||
when nsd_name = 'Vacant' then concat (nsd_trty_code, '_V')
|
||||
else nsd_name
|
||||
end as nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
t2.city_name,
|
||||
null as ims_pack_cod,
|
||||
t3.market,
|
||||
t2.province_code as ims_audit_cod,
|
||||
1 as ims_city_ratio
|
||||
from
|
||||
dm_td_org_tmp t1
|
||||
left join (
|
||||
select distinct
|
||||
t1.yyyymm,
|
||||
t1.trty_code,
|
||||
t2.city_name,
|
||||
-- 20260210 Yusuo ADD
|
||||
t2.province_code,
|
||||
t4.ims_prod_cod,
|
||||
t4.ims_pack_cod
|
||||
from
|
||||
dm.dm_td_territory_indication t1
|
||||
left join dwd.dwd_td_institution t2 on t1.inst_code = t2.inst_code
|
||||
left join cdw_dwd_dim_product_wide t3 on t3.prd_family_cd = t1.family_code
|
||||
left join dwd.dwd_td_imscode_azcode t4 on t3.prd_brand_cd = t4.brandcode
|
||||
where
|
||||
t1.bu not in ('CUBE', 'KA')
|
||||
) t2 on t2.trty_code = t1.mr_trty_code
|
||||
and t2.yyyymm = t1.yyyymm
|
||||
left join dws.dws_ims_td_market t3 on t2.ims_pack_cod = t3.pack_cod
|
||||
--使用和performance cvh 的org架构
|
||||
where
|
||||
t1.yyyymm in (
|
||||
select
|
||||
key_value
|
||||
from
|
||||
dm.dm_td_date_config
|
||||
where
|
||||
key_code = 'pfmc_cvh'
|
||||
)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将还没有做出来AZ产品关系的market挂给所有的对应BU
|
||||
-- insert into tmp_ims_td_org
|
||||
create or replace temporary view tmp_ims_td_org1 as
|
||||
select distinct
|
||||
'Vacant' as rsm_trty_code,
|
||||
'Vacant' as rsm_kcode,
|
||||
'Vacant' as rsm_name,
|
||||
'Vacant' as rsd_trty_code,
|
||||
'Vacant' as rsd_kcode,
|
||||
'Vacant' as rsd_name,
|
||||
'Vacant' as nsd_trty_code,
|
||||
'Vacant' as nsd_kcode,
|
||||
'Vacant' as nsd_name,
|
||||
'Non AZ Region' as region_code,
|
||||
'Non AZ Region' as region_name,
|
||||
'Non AZ Region' as region_name_en,
|
||||
'Non AZ Region' as rc_code,
|
||||
'Non AZ Region' as rc_name,
|
||||
'Non AZ Region' as rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
city_name,
|
||||
null as ims_pack_cod,
|
||||
t2.market,
|
||||
ims_audit_cod,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp_ims_td_org t1
|
||||
left join (
|
||||
select distinct
|
||||
t2.market,
|
||||
t2.bu
|
||||
from
|
||||
tmp_ims_td_org t1
|
||||
right join dwd.dwd_td_ims_market_ta_order t2 on t1.market = t2.market
|
||||
where
|
||||
t1.market is null
|
||||
and t2.market <> 'IMS ALL Market'
|
||||
) t2 on t1.bu_name_en = t2.bu
|
||||
where
|
||||
t2.market is not null
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将所有的ROC的市场数据补全,同时根据市场找到对应BU
|
||||
-- insert into tmp_ims_td_org
|
||||
create or replace temporary view tmp_ims_td_org2 as
|
||||
select distinct
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
t2.bu_code,
|
||||
t2.bu_name,
|
||||
t2.bu_name_en,
|
||||
t2.bu_category,
|
||||
t2.sub_bu_code,
|
||||
t2.sub_bu_name,
|
||||
t2.sub_bu_name_en,
|
||||
t2.city_name,
|
||||
null as ims_pack_cod,
|
||||
t2.market,
|
||||
t2.ims_audit_cod,
|
||||
t2.ims_city_ratio
|
||||
from
|
||||
(
|
||||
select
|
||||
'Vacant' as rsm_trty_code,
|
||||
'Vacant' as rsm_kcode,
|
||||
'Vacant' as rsm_name,
|
||||
'Vacant' as rsd_trty_code,
|
||||
'Vacant' as rsd_kcode,
|
||||
'Vacant' as rsd_name,
|
||||
'Vacant' as nsd_trty_code,
|
||||
'Vacant' as nsd_kcode,
|
||||
'Vacant' as nsd_name,
|
||||
'Other Low Tiers' as region_code,
|
||||
'Other Low Tiers' as region_name,
|
||||
'Other Low Tiers' as region_name_en,
|
||||
'Other Low Tiers' as rc_code,
|
||||
'Other Low Tiers' as rc_name,
|
||||
'Other Low Tiers' as rc_name_en,
|
||||
'Other Low Tiers' as city_name,
|
||||
'ROC' as audit_cod
|
||||
) t1
|
||||
full join (
|
||||
select distinct
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
market,
|
||||
ims_city_ratio,
|
||||
'Other Low Tiers' as city_name,
|
||||
'ROC' as ims_audit_cod
|
||||
from
|
||||
tmp_ims_td_org1
|
||||
where
|
||||
bu_code is not null
|
||||
--有销量的ROC数据
|
||||
and concat (market, '_ROC') in (
|
||||
select distinct
|
||||
concat(market,'_ROC' ) market_audit_key from
|
||||
dm.dm_tf_ext_unionall_market_sales
|
||||
where DATA_SOURCE = 'IQVIA-CHPA(Monthly)' and
|
||||
audit_cod = 'ROC'
|
||||
)
|
||||
) t2 on t1.audit_cod = t2.ims_audit_cod
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将所有未能挂上Org的市场数据补全,同时根据市场找到对应BU
|
||||
-- insert into tmp_ims_td_org
|
||||
create or replace temporary view tmp_ims_td_org3 as
|
||||
select distinct
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
t2.bu_code,
|
||||
t2.bu_name,
|
||||
t2.bu_name_en,
|
||||
t2.bu_category,
|
||||
t2.sub_bu_code,
|
||||
t2.sub_bu_name,
|
||||
t2.sub_bu_name_en,
|
||||
t2.city_name,
|
||||
null as ims_pack_cod,
|
||||
t2.market,
|
||||
t2.ims_audit_cod,
|
||||
t2.ims_city_ratio
|
||||
from
|
||||
(
|
||||
select
|
||||
'Vacant' as rsm_trty_code,
|
||||
'Vacant' as rsm_kcode,
|
||||
'Vacant' as rsm_name,
|
||||
'Vacant' as rsd_trty_code,
|
||||
'Vacant' as rsd_kcode,
|
||||
'Vacant' as rsd_name,
|
||||
'Vacant' as nsd_trty_code,
|
||||
'Vacant' as nsd_kcode,
|
||||
'Vacant' as nsd_name,
|
||||
'Non AZ Region' as region_code,
|
||||
'Non AZ Region' as region_name,
|
||||
'Non AZ Region' as region_name_en,
|
||||
'Non AZ Region' as rc_code,
|
||||
'Non AZ Region' as rc_name,
|
||||
'Non AZ Region' as rc_name_en
|
||||
) t1
|
||||
full join (
|
||||
select distinct
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
-- 'ALL' as sub_bu_code,'ALL' as sub_bu_name,'ALL' as sub_bu_name_en,
|
||||
t2.audit_cod as ims_audit_cod,
|
||||
null as city_name,
|
||||
t2.market,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp_ims_td_org2 t1
|
||||
inner join (
|
||||
--筛选出挂不上Org的市场城市,同时又有销量的
|
||||
select distinct
|
||||
t2.market,
|
||||
t2.audit_cod,
|
||||
t3.bu
|
||||
from
|
||||
tmp_ims_td_org2 t1
|
||||
right join (
|
||||
select distinct
|
||||
audit_cod,
|
||||
market
|
||||
from
|
||||
dm.dm_tf_ext_unionall_market_sales
|
||||
where DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
|
||||
) t2 on concat (t1.market, '_', t1.ims_audit_cod) = concat (t2.market, '_', t2.audit_cod)
|
||||
left join dwd.dwd_td_ims_market_ta_order t3 on t2.market = t3.market
|
||||
where
|
||||
concat (t1.market, '_', t1.ims_audit_cod) is null
|
||||
and t2.market <> 'IMS ALL Market'
|
||||
) t2 on t1.bu_name_en = t2.bu
|
||||
) t2
|
||||
where
|
||||
t2.bu_code is not null
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
create or replace temporary view tmp_ims_td_org4 as
|
||||
select
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
city_name,
|
||||
ims_pack_cod,
|
||||
market,
|
||||
ims_audit_cod,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp_ims_td_org
|
||||
union all
|
||||
select
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
city_name,
|
||||
ims_pack_cod,
|
||||
market,
|
||||
ims_audit_cod,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp_ims_td_org1
|
||||
union all
|
||||
select
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
city_name,
|
||||
ims_pack_cod,
|
||||
market,
|
||||
ims_audit_cod,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp_ims_td_org2
|
||||
union all
|
||||
select
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
city_name,
|
||||
ims_pack_cod,
|
||||
market,
|
||||
ims_audit_cod,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp_ims_td_org3
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
insert overwrite table dm.dm_ims_td_org
|
||||
select distinct
|
||||
concat (t1.market, '_', t2.audit_cod) as ORG_KEY,
|
||||
t1.rsm_trty_code,
|
||||
t1.rsm_kcode,
|
||||
t1.rsm_name,
|
||||
t1.rsd_trty_code,
|
||||
t1.rsd_kcode,
|
||||
t1.rsd_name,
|
||||
t1.nsd_trty_code,
|
||||
t1.nsd_kcode,
|
||||
t1.nsd_name,
|
||||
t1.region_code,
|
||||
t1.region_name,
|
||||
t1.region_name_en,
|
||||
t1.rc_code,
|
||||
t1.rc_name,
|
||||
t1.rc_name_en,
|
||||
t1.bu_code,
|
||||
t1.bu_name,
|
||||
t1.bu_name_en,
|
||||
t1.bu_category,
|
||||
t1.sub_bu_code,
|
||||
t1.sub_bu_name,
|
||||
t1.sub_bu_name_en,
|
||||
t1.sub_bu_code as sub_bu_code_auth, --前端权限配置需要的字段
|
||||
t1.bu_code as bu_code_auth, --前端权限配置需要的字段
|
||||
t2.audit_cod,
|
||||
t2.audit_des,
|
||||
t2.audit_des_c,
|
||||
t2.Province,
|
||||
t2.Province_C,
|
||||
t2.RegionCenter,
|
||||
t1.market,
|
||||
concat (t1.market, '_', t2.audit_cod) as market_audit_key,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp_ims_td_org4 t1
|
||||
left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod
|
||||
--where t1.market is not null and t1.ims_audit_cod is not null
|
||||
|
||||
/* 20260409 chenwu IMS ALL Market 不需要了
|
||||
union all
|
||||
select distinct
|
||||
concat ('IMS ALL Market_', t2.audit_cod) as ORG_KEY,
|
||||
t1.rsm_trty_code,
|
||||
t1.rsm_kcode,
|
||||
t1.rsm_name,
|
||||
t1.rsd_trty_code,
|
||||
t1.rsd_kcode,
|
||||
t1.rsd_name,
|
||||
t1.nsd_trty_code,
|
||||
t1.nsd_kcode,
|
||||
t1.nsd_name,
|
||||
t1.region_code,
|
||||
t1.region_name,
|
||||
t1.region_name_en,
|
||||
t1.rc_code,
|
||||
t1.rc_name,
|
||||
t1.rc_name_en,
|
||||
t1.bu_code,
|
||||
t1.bu_name,
|
||||
t1.bu_name_en,
|
||||
t1.bu_category,
|
||||
t1.sub_bu_code,
|
||||
t1.sub_bu_name,
|
||||
t1.sub_bu_name_en,
|
||||
'ALL' as sub_bu_code_auth,
|
||||
'ALL' as bu_code_auth,
|
||||
t2.audit_cod,
|
||||
t2.audit_des,
|
||||
t2.audit_des_c,
|
||||
t2.Province,
|
||||
t2.Province_C,
|
||||
t2.RegionCenter,
|
||||
'IMS ALL Market' as market,
|
||||
concat ('IMS ALL Market_', t2.audit_cod) as market_audit_key,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp_ims_td_org4 t1
|
||||
left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod
|
||||
where
|
||||
t1.market is not null
|
||||
and t1.ims_audit_cod is not null
|
||||
*/
|
||||
BIN
EXTERNAL/CHPA/03 dm_ims_td_org.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_td_org.sql:Zone.Identifier
Normal file
Binary file not shown.
463
EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql
Normal file
463
EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql
Normal file
@@ -0,0 +1,463 @@
|
||||
-- Databricks notebook source
|
||||
-- MAGIC %run ../../../Common/config
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- MAGIC %python
|
||||
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--dm_org --使用和performance cvh 的org架构
|
||||
insert overwrite table tmp.tmp_ims_td_org_hvh
|
||||
select distinct
|
||||
t1.yyyymm,
|
||||
dsm_trty_code,
|
||||
dsm_kcode,
|
||||
case
|
||||
when dsm_name = 'Vacant' then concat (dsm_trty_code, '_V')
|
||||
else dsm_name
|
||||
end as dsm_name,
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
case
|
||||
when rsm_name = 'Vacant' then concat (rsm_trty_code, '_V')
|
||||
else rsm_name
|
||||
end as rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
case
|
||||
when rsd_name = 'Vacant' then concat (rsd_trty_code, '_V')
|
||||
else rsd_name
|
||||
end as rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
case
|
||||
when nsd_name = 'Vacant' then concat (nsd_trty_code, '_V')
|
||||
else nsd_name
|
||||
end as nsd_name,
|
||||
district_code,
|
||||
district_name,
|
||||
district_name_en,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
t2.city_name,
|
||||
null as ims_pack_cod,
|
||||
t3.market,
|
||||
t2.province_code as ims_audit_cod,
|
||||
--福厦泉 苏锡 珠三角 对应多个city的情况的拆分比
|
||||
-- 20260210 Yusuo Update
|
||||
-- case when t4.ratio is null then 1 else t4.ratio end as ims_city_ratio
|
||||
1 as ims_city_ratio
|
||||
from
|
||||
dm.dm_td_org t1
|
||||
left join (
|
||||
select distinct
|
||||
t1.yyyymm,
|
||||
t1.trty_code,
|
||||
t2.city_name,
|
||||
t2.province_code,
|
||||
t4.ims_prod_cod,
|
||||
t4.ims_pack_cod
|
||||
from
|
||||
dm.dm_td_territory_indication t1
|
||||
left join dwd.dwd_td_institution t2 on t1.inst_code = t2.inst_code
|
||||
left join cdw_dwd_dim_product_wide t3 on t3.prd_family_cd = t1.family_code
|
||||
left join dwd.dwd_td_imscode_azcode t4 on t3.prd_brand_cd = t4.brandcode
|
||||
where
|
||||
t1.bu not in ('CUBE', 'KA')
|
||||
) t2 on t2.trty_code = t1.mr_trty_code
|
||||
and t2.yyyymm = t1.yyyymm
|
||||
left join dws.dws_ims_td_market t3 on t2.ims_pack_cod = t3.pack_cod
|
||||
-- left join dws.dws_td_ims_city_mapping t4 on t2.city_name=concat(t4.city_c_d,'市')
|
||||
--使用和performance cvh 的org架构
|
||||
where
|
||||
left (t1.yyyymm, 4) in (
|
||||
select
|
||||
left (key_value, 4)
|
||||
from
|
||||
dm.dm_td_date_config
|
||||
where
|
||||
key_code = 'pfmc_cvh'
|
||||
)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将还没有做出来AZ产品关系的market挂给所有的对应BU
|
||||
insert into
|
||||
tmp.tmp_ims_td_org_hvh
|
||||
select distinct
|
||||
t1.yyyymm,
|
||||
'Vacant' as dsm_trty_code,
|
||||
'Vacant' as dsm_kcode,
|
||||
'Vacant' as dsm_name,
|
||||
'Vacant' as rsm_trty_code,
|
||||
'Vacant' as rsm_kcode,
|
||||
'Vacant' as rsm_name,
|
||||
'Vacant' as rsd_trty_code,
|
||||
'Vacant' as rsd_kcode,
|
||||
'Vacant' as rsd_name,
|
||||
'Vacant' as nsd_trty_code,
|
||||
'Vacant' as nsd_kcode,
|
||||
'Vacant' as nsd_name,
|
||||
'Non AZ Region' as district_code,
|
||||
'Non AZ Region' as district_name,
|
||||
'Non AZ Region' as district_name_en,
|
||||
'Non AZ Region' as region_code,
|
||||
'Non AZ Region' as region_name,
|
||||
'Non AZ Region' as region_name_en,
|
||||
'Non AZ Region' as rc_code,
|
||||
'Non AZ Region' as rc_name,
|
||||
'Non AZ Region' as rc_name_en,
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
city_name,
|
||||
null as ims_pack_cod,
|
||||
t2.market,
|
||||
ims_audit_cod,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh t1
|
||||
left join (
|
||||
select distinct
|
||||
t2.market,
|
||||
t2.bu
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh t1
|
||||
right join dwd.dwd_td_ims_market_ta_order t2 on t1.market = t2.market
|
||||
where
|
||||
t1.market is null
|
||||
and t2.market <> 'IMS ALL Market'
|
||||
) t2 on t1.bu_name_en = t2.bu
|
||||
where
|
||||
t2.market is not null
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将所有的ROC的市场数据补全,同时根据市场找到对应BU
|
||||
insert into
|
||||
tmp.tmp_ims_td_org_hvh
|
||||
select distinct
|
||||
yyyymm,
|
||||
dsm_trty_code,
|
||||
dsm_kcode,
|
||||
dsm_name,
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
district_code,
|
||||
district_name,
|
||||
district_name_en,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
t2.bu_code,
|
||||
t2.bu_name,
|
||||
t2.bu_name_en,
|
||||
t2.bu_category,
|
||||
t2.sub_bu_code,
|
||||
t2.sub_bu_name,
|
||||
t2.sub_bu_name_en,
|
||||
t2.city_name,
|
||||
null as ims_pack_cod,
|
||||
t2.market,
|
||||
t2.ims_audit_cod,
|
||||
t2.ims_city_ratio
|
||||
from
|
||||
(
|
||||
select
|
||||
'Vacant' as dsm_trty_code,
|
||||
'Vacant' as dsm_kcode,
|
||||
'Vacant' as dsm_name,
|
||||
'Vacant' as rsm_trty_code,
|
||||
'Vacant' as rsm_kcode,
|
||||
'Vacant' as rsm_name,
|
||||
'Vacant' as rsd_trty_code,
|
||||
'Vacant' as rsd_kcode,
|
||||
'Vacant' as rsd_name,
|
||||
'Vacant' as nsd_trty_code,
|
||||
'Vacant' as nsd_kcode,
|
||||
'Vacant' as nsd_name,
|
||||
'Non AZ Region' as district_code,
|
||||
'Non AZ Region' as district_name,
|
||||
'Non AZ Region' as district_name_en,
|
||||
'Other Low Tiers' as region_code,
|
||||
'Other Low Tiers' as region_name,
|
||||
'Other Low Tiers' as region_name_en,
|
||||
'Other Low Tiers' as rc_code,
|
||||
'Other Low Tiers' as rc_name,
|
||||
'Other Low Tiers' as rc_name_en,
|
||||
'Other Low Tiers' as city_name,
|
||||
'ROC' as audit_cod
|
||||
) t1
|
||||
full join (
|
||||
select distinct
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
-- 'ALL' as sub_bu_code,'ALL' as sub_bu_name,'ALL' as sub_bu_name_en,
|
||||
market,
|
||||
ims_city_ratio,
|
||||
yyyymm,
|
||||
'Other Low Tiers' as city_name,
|
||||
'ROC' as ims_audit_cod
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh
|
||||
-- )t2 --on t1.bu=t2.bu_name_en
|
||||
where
|
||||
bu_code is not null
|
||||
--有销量的ROC数据
|
||||
and concat (market, '_ROC') in (
|
||||
select distinct
|
||||
market_audit_key
|
||||
from
|
||||
dm.dm_ims_tf_sales
|
||||
where
|
||||
audit_cod = 'ROC'
|
||||
)
|
||||
) t2 on t1.audit_cod = t2.ims_audit_cod
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--将所有未能挂上Org的市场数据补全,同时根据市场找到对应BU
|
||||
insert into
|
||||
tmp.tmp_ims_td_org_hvh
|
||||
select distinct
|
||||
yyyymm,
|
||||
dsm_trty_code,
|
||||
dsm_kcode,
|
||||
dsm_name,
|
||||
rsm_trty_code,
|
||||
rsm_kcode,
|
||||
rsm_name,
|
||||
rsd_trty_code,
|
||||
rsd_kcode,
|
||||
rsd_name,
|
||||
nsd_trty_code,
|
||||
nsd_kcode,
|
||||
nsd_name,
|
||||
district_code,
|
||||
district_name,
|
||||
district_name_en,
|
||||
region_code,
|
||||
region_name,
|
||||
region_name_en,
|
||||
rc_code,
|
||||
rc_name,
|
||||
rc_name_en,
|
||||
t2.bu_code,
|
||||
t2.bu_name,
|
||||
t2.bu_name_en,
|
||||
t2.bu_category,
|
||||
t2.sub_bu_code,
|
||||
t2.sub_bu_name,
|
||||
t2.sub_bu_name_en,
|
||||
t2.city_name,
|
||||
null as ims_pack_cod,
|
||||
t2.market,
|
||||
t2.ims_audit_cod,
|
||||
t2.ims_city_ratio
|
||||
from
|
||||
(
|
||||
select
|
||||
'Vacant' as dsm_trty_code,
|
||||
'Vacant' as dsm_kcode,
|
||||
'Vacant' as dsm_name,
|
||||
'Vacant' as rsm_trty_code,
|
||||
'Vacant' as rsm_kcode,
|
||||
'Vacant' as rsm_name,
|
||||
'Vacant' as rsd_trty_code,
|
||||
'Vacant' as rsd_kcode,
|
||||
'Vacant' as rsd_name,
|
||||
'Vacant' as nsd_trty_code,
|
||||
'Vacant' as nsd_kcode,
|
||||
'Vacant' as nsd_name,
|
||||
'Non AZ Region' as district_code,
|
||||
'Non AZ Region' as district_name,
|
||||
'Non AZ Region' as district_name_en,
|
||||
'Non AZ Region' as region_code,
|
||||
'Non AZ Region' as region_name,
|
||||
'Non AZ Region' as region_name_en,
|
||||
'Non AZ Region' as rc_code,
|
||||
'Non AZ Region' as rc_name,
|
||||
'Non AZ Region' as rc_name_en
|
||||
) t1
|
||||
full join (
|
||||
select distinct
|
||||
bu_code,
|
||||
bu_name,
|
||||
bu_name_en,
|
||||
bu_category,
|
||||
sub_bu_code,
|
||||
sub_bu_name,
|
||||
sub_bu_name_en,
|
||||
-- 'ALL' as sub_bu_code,'ALL' as sub_bu_name,'ALL' as sub_bu_name_en,
|
||||
t2.audit_cod as ims_audit_cod,
|
||||
null as city_name,
|
||||
t1.yyyymm,
|
||||
t2.market,
|
||||
ims_city_ratio
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh t1
|
||||
inner join (
|
||||
--筛选出挂不上Org的市场城市,同时又有销量的
|
||||
select distinct
|
||||
t2.market,
|
||||
t2.audit_cod,
|
||||
t3.bu
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh t1
|
||||
right join (
|
||||
select distinct
|
||||
audit_cod,
|
||||
market
|
||||
from
|
||||
dm.dm_ims_tf_sales
|
||||
) t2 on concat (t1.market, '_', t1.ims_audit_cod) = concat (t2.market, '_', t2.audit_cod)
|
||||
left join dwd.dwd_td_ims_market_ta_order t3 on t2.market = t3.market
|
||||
where
|
||||
concat (t1.market, '_', t1.ims_audit_cod) is null
|
||||
and t2.market <> 'IMS ALL Market'
|
||||
) t2 on t1.bu_name_en = t2.bu
|
||||
) t2
|
||||
where
|
||||
t2.bu_code is not null
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
insert overwrite table dm.dm_ims_td_org_hvh
|
||||
select distinct
|
||||
t1.yyyymm,
|
||||
concat (
|
||||
t1.market,
|
||||
'_',
|
||||
t2.audit_cod,
|
||||
'_',
|
||||
right (t1.yyyymm, 2)
|
||||
) as ORG_KEY,
|
||||
t1.dsm_trty_code,
|
||||
t1.dsm_kcode,
|
||||
t1.dsm_name,
|
||||
t1.rsm_trty_code,
|
||||
t1.rsm_kcode,
|
||||
t1.rsm_name,
|
||||
t1.rsd_trty_code,
|
||||
t1.rsd_kcode,
|
||||
t1.rsd_name,
|
||||
t1.nsd_trty_code,
|
||||
t1.nsd_kcode,
|
||||
t1.nsd_name,
|
||||
t1.district_code,
|
||||
t1.district_name,
|
||||
t1.district_name_en,
|
||||
t1.region_code,
|
||||
t1.region_name,
|
||||
t1.region_name_en,
|
||||
t1.rc_code,
|
||||
t1.rc_name,
|
||||
t1.rc_name_en,
|
||||
t1.bu_code,
|
||||
t1.bu_name,
|
||||
t1.bu_name_en,
|
||||
t1.bu_category,
|
||||
t1.sub_bu_code,
|
||||
t1.sub_bu_name,
|
||||
t1.sub_bu_name_en,
|
||||
t1.sub_bu_code as sub_bu_code_auth, --前端权限配置需要的字段
|
||||
t1.bu_code as bu_code_auth, --前端权限配置需要的字段
|
||||
t2.audit_cod,
|
||||
t2.audit_des,
|
||||
t2.audit_des_c,
|
||||
t2.Province,
|
||||
t2.Province_C,
|
||||
t2.RegionCenter,
|
||||
t1.market,
|
||||
concat (t1.market, '_', t2.audit_cod) as market_audit_key,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh t1
|
||||
left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod
|
||||
--where t1.market is not null and t1.ims_audit_cod is not null
|
||||
union all
|
||||
select distinct
|
||||
t1.yyyymm,
|
||||
concat (
|
||||
'IMS ALL Market',
|
||||
'_',
|
||||
t2.audit_cod,
|
||||
'_',
|
||||
right (t1.yyyymm, 2)
|
||||
) as ORG_KEY,
|
||||
t1.dsm_trty_code,
|
||||
t1.dsm_kcode,
|
||||
t1.dsm_name,
|
||||
t1.rsm_trty_code,
|
||||
t1.rsm_kcode,
|
||||
t1.rsm_name,
|
||||
t1.rsd_trty_code,
|
||||
t1.rsd_kcode,
|
||||
t1.rsd_name,
|
||||
t1.nsd_trty_code,
|
||||
t1.nsd_kcode,
|
||||
t1.nsd_name,
|
||||
t1.district_code,
|
||||
t1.district_name,
|
||||
t1.district_name_en,
|
||||
t1.region_code,
|
||||
t1.region_name,
|
||||
t1.region_name_en,
|
||||
t1.rc_code,
|
||||
t1.rc_name,
|
||||
t1.rc_name_en,
|
||||
t1.bu_code,
|
||||
t1.bu_name,
|
||||
t1.bu_name_en,
|
||||
t1.bu_category,
|
||||
t1.sub_bu_code,
|
||||
t1.sub_bu_name,
|
||||
t1.sub_bu_name_en,
|
||||
'ALL' as sub_bu_code_auth,
|
||||
'ALL' as bu_code_auth,
|
||||
t2.audit_cod,
|
||||
t2.audit_des,
|
||||
t2.audit_des_c,
|
||||
t2.Province,
|
||||
t2.Province_C,
|
||||
t2.RegionCenter,
|
||||
'IMS ALL Market' as market,
|
||||
concat ('IMS ALL Market_', t2.audit_cod) as market_audit_key,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp.tmp_ims_td_org_hvh t1
|
||||
left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod
|
||||
BIN
EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql:Zone.Identifier
Normal file
Binary file not shown.
1679
EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql
Normal file
1679
EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql
Normal file
File diff suppressed because it is too large
Load Diff
BIN
EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql:Zone.Identifier
Normal file
Binary file not shown.
759
EXTERNAL/CHPA/03 dm_ims_tf_sales.sql
Normal file
759
EXTERNAL/CHPA/03 dm_ims_tf_sales.sql
Normal file
@@ -0,0 +1,759 @@
|
||||
-- Databricks notebook source
|
||||
-- DBTITLE 1,建表SQL
|
||||
-- CREATE OR REPLACE TABLE dm.dm_ims_tf_sales (
|
||||
-- YYYYMM STRING,
|
||||
-- DAY_DATE STRING,
|
||||
-- PACK_COD STRING,
|
||||
-- AUDIT_COD STRING,
|
||||
-- Related_flag STRING,
|
||||
-- ORG_KEY STRING,
|
||||
-- Market STRING,
|
||||
-- MARKET_PACK_KEY STRING,
|
||||
-- MARKET_AUDIT_KEY STRING,
|
||||
-- SALES_VALUE DECIMAL(30,10),
|
||||
-- SALES_VALUE_LY DECIMAL(30,10),
|
||||
-- SALES_VALUE_L2Y DECIMAL(30,10),
|
||||
-- SALES_UNIT DECIMAL(30,10),
|
||||
-- SALES_UNIT_LY DECIMAL(30,10),
|
||||
-- SALES_UNIT_L2Y DECIMAL(30,10),
|
||||
-- CONUTING_UNIT DECIMAL(30,10),
|
||||
-- CONUTING_UNIT_LY DECIMAL(30,10),
|
||||
-- CONUTING_UNIT_L2Y DECIMAL(30,10),
|
||||
-- PDOT DECIMAL(30,10),
|
||||
-- PDOT_LY DECIMAL(30,10),
|
||||
-- PDOT_L2Y DECIMAL(30,10),
|
||||
-- SALES_VALUE_CAL DECIMAL(30,10),
|
||||
-- SALES_VALUE_CAL_LY DECIMAL(30,10),
|
||||
-- SALES_UNIT_CAL DECIMAL(30,10),
|
||||
-- SALES_UNIT_CAL_LY DECIMAL(30,10),
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ims_tf_sales';
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,tmp_ims_tf_fact_sales_l2y
|
||||
--提前算好前端需要两年前的数据
|
||||
-- tmp.tmp_ims_tf_fact_sales 整张表对应的notebook path:/Workspace/Users/kthc245@azc.partner.onmschina.cn/20251125Rebuild MA/rebuildMA/DWS/dws_ims_tbl
|
||||
CREATE
|
||||
OR REPLACE TEMPORARY VIEW tmp_ims_tf_fact_sales_l2y AS
|
||||
select
|
||||
YM,
|
||||
AUDIT_COD,
|
||||
PACK_COD,
|
||||
sum(MTH00LC) as MTH00LC,
|
||||
sum(MTH00LCLY) as MTH00LCLY,
|
||||
sum(MTH00LCL2Y) as MTH00LCL2Y,
|
||||
sum(MTH00CN) as MTH00CN,
|
||||
sum(MTH00CNLY) as MTH00CNLY,
|
||||
sum(MTH00CNL2Y) as MTH00CNL2Y,
|
||||
sum(MTH00UN) as MTH00UN,
|
||||
sum(MTH00UNLY) as MTH00UNLY,
|
||||
sum(MTH00UNL2Y) as MTH00UNL2Y
|
||||
from
|
||||
(
|
||||
select
|
||||
YM,
|
||||
AUDIT_COD,
|
||||
PACK_COD,
|
||||
MTH00LC,
|
||||
MTH00LCLY,
|
||||
0 as MTH00LCL2Y,
|
||||
MTH00CN,
|
||||
MTH00CNLY,
|
||||
0 as MTH00CNL2Y,
|
||||
MTH00UN,
|
||||
MTH00UNLY,
|
||||
0 as MTH00UNL2Y
|
||||
from
|
||||
tmp.tmp_ims_tf_fact_sales
|
||||
union all
|
||||
select
|
||||
YM + 200 as YM,
|
||||
AUDIT_COD,
|
||||
PACK_COD,
|
||||
0 as MTH00LC,
|
||||
0 as MTH00LCLY,
|
||||
MTH00LC as MTH00LCL2Y,
|
||||
0 as MTH00CN,
|
||||
0 as MTH00CNLY,
|
||||
MTH00CN as MTH00CNL2Y,
|
||||
0 as MTH00UN,
|
||||
0 as MTH00UNLY,
|
||||
MTH00UN as MTH00UNL2Y
|
||||
from
|
||||
tmp.tmp_ims_tf_fact_sales
|
||||
where
|
||||
YM + 200 in (
|
||||
select distinct
|
||||
YM
|
||||
from
|
||||
tmp.tmp_ims_tf_fact_sales
|
||||
)
|
||||
)
|
||||
group by
|
||||
YM,
|
||||
AUDIT_COD,
|
||||
PACK_COD
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,tmp_ims_tf_sales_total
|
||||
--提前算好需要IMS 折算的value和不折算的value
|
||||
CREATE
|
||||
OR REPLACE TEMPORARY VIEW tmp_ims_tf_sales_total AS
|
||||
-- select distinct
|
||||
-- t1.YM as YYYYMM,
|
||||
-- t1.PACK_COD,
|
||||
-- t1.AUDIT_COD,
|
||||
-- 'ALL' AS RELATE_FLAG,
|
||||
-- t1.AUDIT_COD as ORG_KEY,
|
||||
-- case
|
||||
-- when t2.market is null then 'Non Market'
|
||||
-- else t2.market
|
||||
-- end Market,
|
||||
-- case
|
||||
-- when t2.market is null then concat ('Non Market_', t1.pack_cod)
|
||||
-- else concat (t2.market, '_', t2.pack_cod)
|
||||
-- end as MARKET_PACK_KEY,
|
||||
-- case
|
||||
-- when t2.market is null then concat ('Non Market_', t1.audit_cod)
|
||||
-- else concat (t2.market, '_', t1.audit_cod)
|
||||
-- end as MARKET_AUDIT_KEY,
|
||||
-- t1.MTH00LC * (
|
||||
-- case
|
||||
-- when t2.Value_Market_Ratio is null then 1
|
||||
-- else t2.Value_Market_Ratio
|
||||
-- end
|
||||
-- ) as SALES_VALUE,
|
||||
-- t1.MTH00LCLY * (
|
||||
-- case
|
||||
-- when t2.Value_Market_Ratio is null then 1
|
||||
-- else t2.Value_Market_Ratio
|
||||
-- end
|
||||
-- ) as SALES_VALUE_LY,
|
||||
-- t1.MTH00LCL2Y * (
|
||||
-- case
|
||||
-- when t2.Value_Market_Ratio is null then 1
|
||||
-- else t2.Value_Market_Ratio
|
||||
-- end
|
||||
-- ) as SALES_VALUE_L2Y,
|
||||
-- t1.MTH00UN * (
|
||||
-- case
|
||||
-- when t2.Unit_Market_Ratio is null then 1
|
||||
-- else t2.Unit_Market_Ratio
|
||||
-- end
|
||||
-- ) as SALES_UNIT,
|
||||
-- t1.MTH00UNLY * (
|
||||
-- case
|
||||
-- when t2.Unit_Market_Ratio is null then 1
|
||||
-- else t2.Unit_Market_Ratio
|
||||
-- end
|
||||
-- ) as SALES_UNIT_LY,
|
||||
-- t1.MTH00UNL2Y * (
|
||||
-- case
|
||||
-- when t2.Unit_Market_Ratio is null then 1
|
||||
-- else t2.Unit_Market_Ratio
|
||||
-- end
|
||||
-- ) as SALES_UNIT_L2Y,
|
||||
-- t1.MTH00CN as CONUTING_UNIT,
|
||||
-- t1.MTH00CNLY as CONUTING_UNIT_LY,
|
||||
-- t1.MTH00CNL2Y as CONUTING_UNIT_L2Y,
|
||||
-- t1.MTH00CN * (
|
||||
-- case
|
||||
-- when t2.CountingUnit_Market_Ratio is null then 1
|
||||
-- else t2.CountingUnit_Market_Ratio
|
||||
-- end
|
||||
-- ) as PDOT,
|
||||
-- t1.MTH00CNLY * (
|
||||
-- case
|
||||
-- when t2.CountingUnit_Market_Ratio is null then 1
|
||||
-- else t2.CountingUnit_Market_Ratio
|
||||
-- end
|
||||
-- ) as PDOT_LY,
|
||||
-- t1.MTH00CNL2Y * (
|
||||
-- case
|
||||
-- when t2.CountingUnit_Market_Ratio is null then 1
|
||||
-- else t2.CountingUnit_Market_Ratio
|
||||
-- end
|
||||
-- ) as PDOT_L2Y,
|
||||
-- t1.MTH00LC as SALES_VALUE_CAL,
|
||||
-- t1.MTH00LCLY as SALES_VALUE_CAL_LY,
|
||||
-- t1.MTH00LCL2Y as SALES_VALUE_CAL_L2Y,
|
||||
-- t1.MTH00UN as SALES_UNIT_CAL,
|
||||
-- t1.MTH00UNLY as SALES_UNIT_CAL_LY,
|
||||
-- t1.MTH00UNL2Y as SALES_UNIT_CAL_L2Y,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') as ETL_INSERT_DT,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') as ETL_UPDATE_DT
|
||||
-- from
|
||||
-- tmp_ims_tf_fact_sales_l2y t1
|
||||
-- left join (
|
||||
-- select distinct
|
||||
-- YM,
|
||||
-- market,
|
||||
-- pack_cod,
|
||||
-- Value_Market_Ratio,
|
||||
-- Unit_Market_Ratio,
|
||||
-- CountingUnit_Market_Ratio
|
||||
-- from
|
||||
-- dws.dws_ims_td_market_ratio
|
||||
-- ) t2 on t1.pack_cod = t2.pack_cod
|
||||
-- and t1.YM = t2.YM
|
||||
-- where
|
||||
-- -- t1.YM in (select YYYYMM from dm.dm_ims_td_calendar)and
|
||||
-- t2.market is not null
|
||||
-- union all
|
||||
-- -- IMS ALL Market 为所有的IMS市场 不折算的数据的汇总,即不折算的所有市场的city粒度数据
|
||||
select distinct
|
||||
t1.YM as YYYYMM,
|
||||
t1.PACK_COD,
|
||||
t1.AUDIT_COD,
|
||||
-- 'ALL' AS RELATE_FLAG,
|
||||
t1.AUDIT_COD as ORG_KEY,
|
||||
-- 'IMS ALL Market' Market,
|
||||
-- concat ('IMS ALL Market_', t1.pack_cod) as MARKET_PACK_KEY,
|
||||
-- concat ('IMS ALL Market_', t1.audit_cod) as MARKET_AUDIT_KEY,
|
||||
t1.MTH00LC SALES_VALUE,
|
||||
t1.MTH00LCLY SALES_VALUE_LY,
|
||||
t1.MTH00LCL2Y SALES_VALUE_L2Y,
|
||||
t1.MTH00UN SALES_UNIT,
|
||||
t1.MTH00UNLY SALES_UNIT_LY,
|
||||
t1.MTH00UNL2Y SALES_UNIT_L2Y,
|
||||
t1.MTH00CN CONUTING_UNIT,
|
||||
t1.MTH00CNLY CONUTING_UNIT_LY,
|
||||
t1.MTH00CNL2Y CONUTING_UNIT_L2Y,
|
||||
t1.MTH00CN PDOT,
|
||||
t1.MTH00CNLY PDOT_LY,
|
||||
t1.MTH00CNL2Y PDOT_L2Y,
|
||||
t1.MTH00LC SALES_VALUE_CAL,
|
||||
t1.MTH00LCLY SALES_VALUE_CAL_LY,
|
||||
t1.MTH00LCL2Y SALES_VALUE_CAL_L2Y,
|
||||
t1.MTH00UN SALES_UNIT_CAL,
|
||||
t1.MTH00UNLY SALES_UNIT_CAL_LY,
|
||||
t1.MTH00UNL2Y SALES_UNIT_CAL_L2Y,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp_ims_tf_fact_sales_l2y t1
|
||||
-- where t1.YM in (select YYYYMM from dm.dm_ims_td_calendar)
|
||||
;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,tmp_ims_tf_sales_tamarket
|
||||
-- --在原本的数据上加上AZ Related Market,此为AZ 相关的六大市场数据汇总
|
||||
-- --以及年月日的日期格式标签
|
||||
-- CREATE
|
||||
-- OR REPLACE TEMPORARY VIEW tmp_ims_tf_sales_tamarket AS
|
||||
-- select distinct
|
||||
-- YYYYMM,
|
||||
-- concat (left (YYYYMM, 4), '-', right (YYYYMM, 2), '-01') as DAY_DATE,
|
||||
-- PACK_COD,
|
||||
-- AUDIT_COD,
|
||||
-- RELATE_FLAG,
|
||||
-- ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- MARKET_AUDIT_KEY,
|
||||
-- SALES_VALUE,
|
||||
-- SALES_VALUE_LY,
|
||||
-- SALES_VALUE_L2Y,
|
||||
-- SALES_UNIT,
|
||||
-- SALES_UNIT_LY,
|
||||
-- SALES_UNIT_L2Y,
|
||||
-- CONUTING_UNIT,
|
||||
-- CONUTING_UNIT_LY,
|
||||
-- CONUTING_UNIT_L2Y,
|
||||
-- PDOT,
|
||||
-- PDOT_LY,
|
||||
-- PDOT_L2Y,
|
||||
-- SALES_VALUE_CAL,
|
||||
-- SALES_VALUE_CAL_LY,
|
||||
-- SALES_VALUE_CAL_L2Y,
|
||||
-- SALES_UNIT_CAL,
|
||||
-- SALES_UNIT_CAL_LY,
|
||||
-- SALES_UNIT_CAL_L2Y,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
-- from
|
||||
-- tmp_ims_tf_sales_total
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,插入逻辑1-需保留
|
||||
-- dm.dm_ims_tf_sales_china 和 dm.dm_ims_tf_sales 区别就在于 audit_cod = 'CHT' 或者 t1.audit_cod <> 'CHT'
|
||||
-- insert overwrite table dm.dm_ims_tf_sales_china
|
||||
-- from tmp_ims_tf_sales_tamarket t1
|
||||
-- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market' )
|
||||
-- union all
|
||||
-- from tmp_ims_tf_sales_tamarket t1
|
||||
-- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')
|
||||
-- insert overwrite table dm.dm_ims_tf_sales
|
||||
-- from tmp_ims_tf_sales_tamarket t1
|
||||
-- where t1.audit_cod <> 'CHT' and t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')and (sales_value<>0 or sales_value_ly<>0)
|
||||
-- union all
|
||||
-- from tmp_ims_tf_sales_tamarket t1
|
||||
-- where t1.audit_cod <> 'CHT' and t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')and (sales_value<>0 or sales_value_ly<>0)
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- CREATE TABLE catalog_e2_ngbi_qas.dm.dm_ims_tf_sales_china (
|
||||
-- YYYYMM INT,
|
||||
-- PACK_COD STRING,
|
||||
-- AUDIT_COD STRING,
|
||||
-- SALES_VALUE DECIMAL(38,10),
|
||||
-- SALES_VALUE_LY DECIMAL(38,10),
|
||||
-- SALES_VALUE_L2Y DECIMAL(38,10),
|
||||
-- SALES_UNIT DECIMAL(38,10),
|
||||
-- SALES_UNIT_LY DECIMAL(38,10),
|
||||
-- SALES_UNIT_L2Y DECIMAL(38,10),
|
||||
-- CONUTING_UNIT DECIMAL(38,10),
|
||||
-- CONUTING_UNIT_LY DECIMAL(38,10),
|
||||
-- CONUTING_UNIT_L2Y DECIMAL(38,10),
|
||||
-- PDOT DECIMAL(38,10),
|
||||
-- PDOT_LY DECIMAL(38,10),
|
||||
-- PDOT_L2Y DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL_LY DECIMAL(38,10),
|
||||
-- SALES_UNIT_CAL DECIMAL(38,10),
|
||||
-- SALES_UNIT_CAL_LY DECIMAL(38,10),
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ims_tf_sales_china'
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,overwrite dm.dm_ims_tf_sales_china
|
||||
--SALES
|
||||
--CHINA CHPA数据
|
||||
-- t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')
|
||||
-- ,CONUTING_UNIT
|
||||
-- ,CONUTING_UNIT_LY
|
||||
-- ,CONUTING_UNIT_L2Y
|
||||
-- ,SALES_VALUE_CAL
|
||||
-- ,SALES_VALUE_CAL_LY
|
||||
-- ,SALES_UNIT_CAL
|
||||
-- ,SALES_UNIT_CAL_LY
|
||||
-- from tmp_ims_tf_sales_tamarket t1
|
||||
-- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market' )
|
||||
-- t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')
|
||||
-- PDOT as CONUTING_UNIT
|
||||
-- ,PDOT_LY as CONUTING_UNIT_LY
|
||||
-- ,PDOT_L2Y as CONUTING_UNIT_L2Y
|
||||
-- ,SALES_VALUE as SALES_VALUE_CAL
|
||||
-- ,SALES_VALUE_LY as SALES_VALUE_CAL_LY
|
||||
-- ,SALES_UNIT as SALES_UNIT_CAL
|
||||
-- ,SALES_UNIT_LY as SALES_UNIT_CAL_LY
|
||||
-- from tmp_ims_tf_sales_tamarket t1
|
||||
-- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')
|
||||
-- create or replace table dm.dm_ims_tf_sales_china
|
||||
insert overwrite table dm.dm_ims_tf_sales_china
|
||||
select distinct
|
||||
YYYYMM,
|
||||
-- DAY_DATE,
|
||||
PACK_COD,
|
||||
AUDIT_COD,
|
||||
-- RELATE_FLAG,
|
||||
-- ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- MARKET_AUDIT_KEY,
|
||||
SALES_VALUE,
|
||||
SALES_VALUE_LY,
|
||||
SALES_VALUE_L2Y,
|
||||
SALES_UNIT,
|
||||
SALES_UNIT_LY,
|
||||
SALES_UNIT_L2Y,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
CONUTING_UNIT_L2Y,
|
||||
PDOT,
|
||||
PDOT_LY,
|
||||
PDOT_L2Y,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp_ims_tf_sales_total t1
|
||||
where
|
||||
t1.audit_cod = 'CHT'
|
||||
and (
|
||||
sales_value <> 0
|
||||
or sales_value_ly <> 0
|
||||
)
|
||||
-- and t1.market not in (
|
||||
-- 'Primary Prevention Market-XZK',
|
||||
-- 'Iressa 1L TKI Market'
|
||||
-- )
|
||||
-- union all
|
||||
-- select distinct
|
||||
-- YYYYMM,
|
||||
-- DAY_DATE,
|
||||
-- PACK_COD,
|
||||
-- AUDIT_COD,
|
||||
-- RELATE_FLAG,
|
||||
-- ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- MARKET_AUDIT_KEY,
|
||||
-- SALES_VALUE,
|
||||
-- SALES_VALUE_LY,
|
||||
-- SALES_VALUE_L2Y,
|
||||
-- SALES_UNIT,
|
||||
-- SALES_UNIT_LY,
|
||||
-- SALES_UNIT_L2Y,
|
||||
-- PDOT as CONUTING_UNIT,
|
||||
-- PDOT_LY as CONUTING_UNIT_LY,
|
||||
-- PDOT_L2Y as CONUTING_UNIT_L2Y,
|
||||
-- PDOT,
|
||||
-- PDOT_LY,
|
||||
-- PDOT_L2Y,
|
||||
-- SALES_VALUE as SALES_VALUE_CAL,
|
||||
-- SALES_VALUE_LY as SALES_VALUE_CAL_LY,
|
||||
-- SALES_UNIT as SALES_UNIT_CAL,
|
||||
-- SALES_UNIT_LY as SALES_UNIT_CAL_LY,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
-- from
|
||||
-- tmp_ims_tf_sales_tamarket t1
|
||||
-- where
|
||||
-- t1.audit_cod = 'CHT'
|
||||
-- and (
|
||||
-- sales_value <> 0
|
||||
-- or sales_value_ly <> 0
|
||||
-- )
|
||||
-- and t1.market in (
|
||||
-- 'Primary Prevention Market-XZK',
|
||||
-- 'Iressa 1L TKI Market'
|
||||
-- )
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- CREATE or REPLACE TABLE dm.dm_ims_tf_sales (
|
||||
-- YYYYMM INT,
|
||||
-- PACK_COD STRING,
|
||||
-- AUDIT_COD STRING,
|
||||
-- SALES_VALUE DECIMAL(38,10),
|
||||
-- SALES_VALUE_LY DECIMAL(38,10),
|
||||
-- SALES_VALUE_L2Y DECIMAL(38,10),
|
||||
-- SALES_UNIT DECIMAL(38,10),
|
||||
-- SALES_UNIT_LY DECIMAL(38,10),
|
||||
-- SALES_UNIT_L2Y DECIMAL(38,10),
|
||||
-- CONUTING_UNIT DECIMAL(38,10),
|
||||
-- CONUTING_UNIT_LY DECIMAL(38,10),
|
||||
-- CONUTING_UNIT_L2Y DECIMAL(38,10),
|
||||
-- PDOT DECIMAL(38,10),
|
||||
-- PDOT_LY DECIMAL(38,10),
|
||||
-- PDOT_L2Y DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL DECIMAL(38,10),
|
||||
-- SALES_VALUE_CAL_LY DECIMAL(38,10),
|
||||
-- SALES_UNIT_CAL DECIMAL(38,10),
|
||||
-- SALES_UNIT_CAL_LY DECIMAL(38,10),
|
||||
-- ETL_INSERT_DT TIMESTAMP,
|
||||
-- ETL_UPDATE_DT TIMESTAMP)
|
||||
-- USING delta
|
||||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ims_tf_sales'
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,overwrite dm.dm_ims_tf_sales
|
||||
--SALES
|
||||
--CITY
|
||||
insert overwrite table dm.dm_ims_tf_sales
|
||||
select distinct
|
||||
YYYYMM,
|
||||
-- DAY_DATE,
|
||||
PACK_COD,
|
||||
AUDIT_COD,
|
||||
-- RELATE_FLAG,
|
||||
-- ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- MARKET_AUDIT_KEY,
|
||||
SALES_VALUE,
|
||||
SALES_VALUE_LY,
|
||||
SALES_VALUE_L2Y,
|
||||
SALES_UNIT,
|
||||
SALES_UNIT_LY,
|
||||
SALES_UNIT_L2Y,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
CONUTING_UNIT_L2Y,
|
||||
PDOT,
|
||||
PDOT_LY,
|
||||
PDOT_L2Y,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp_ims_tf_sales_total t1
|
||||
where
|
||||
t1.audit_cod <> 'CHT'
|
||||
-- and t1.market not in (
|
||||
-- 'Primary Prevention Market-XZK',
|
||||
-- 'Iressa 1L TKI Market'
|
||||
-- )
|
||||
and (
|
||||
sales_value <> 0
|
||||
or sales_value_ly <> 0
|
||||
)
|
||||
-- union all
|
||||
-- --'Primary Prevention Market-XZK','Iressa 1L TKI Market' 两个市场特殊处理,所有的value都是折算过的
|
||||
-- select distinct
|
||||
-- YYYYMM,
|
||||
-- DAY_DATE,
|
||||
-- PACK_COD,
|
||||
-- AUDIT_COD,
|
||||
-- RELATE_FLAG,
|
||||
-- ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- MARKET_AUDIT_KEY,
|
||||
-- SALES_VALUE,
|
||||
-- SALES_VALUE_LY,
|
||||
-- SALES_VALUE_L2Y,
|
||||
-- SALES_UNIT,
|
||||
-- SALES_UNIT_LY,
|
||||
-- SALES_UNIT_L2Y,
|
||||
-- PDOT as CONUTING_UNIT,
|
||||
-- PDOT_LY as CONUTING_UNIT_LY,
|
||||
-- PDOT_L2Y as CONUTING_UNIT_L2Y,
|
||||
-- PDOT,
|
||||
-- PDOT_LY,
|
||||
-- PDOT_L2Y,
|
||||
-- SALES_VALUE as SALES_VALUE_CAL,
|
||||
-- SALES_VALUE_LY as SALES_VALUE_CAL_LY,
|
||||
-- SALES_UNIT as SALES_UNIT_CAL,
|
||||
-- SALES_UNIT_LY as SALES_UNIT_CAL_LY,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
-- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
-- from
|
||||
-- tmp_ims_tf_sales_tamarket t1
|
||||
-- where
|
||||
-- t1.audit_cod <> 'CHT'
|
||||
-- -- and t1.market in (
|
||||
-- -- 'Primary Prevention Market-XZK',
|
||||
-- -- 'Iressa 1L TKI Market'
|
||||
-- -- )
|
||||
-- -- and (
|
||||
-- -- sales_value <> 0
|
||||
-- -- or sales_value_ly <> 0
|
||||
-- -- )
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,插入逻辑2-需保留
|
||||
-- -- 关键词
|
||||
-- audit_cod <> 'CHT' -》 dm.dm_ims_tf_sales
|
||||
-- audit_cod = 'CHT' -》dm.dm_ims_tf_sales_china
|
||||
-- KCT 所有城市的IMS数据 基于 dm.dm_ims_tf_sales
|
||||
-- ROC 其他城市的IMS数据计算 ROC = CHT-KCT
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,overwrite tmp.tmp_ims_tf_sales_kct
|
||||
-- 所有城市汇总的IMS数据计算 KCT=sum(all city)
|
||||
-- create or replace table tmp.tmp_ims_tf_sales_kct
|
||||
insert overwrite table tmp.tmp_ims_tf_sales_kct
|
||||
select
|
||||
YYYYMM,
|
||||
PACK_COD,
|
||||
'KCT' as AUDIT_COD,
|
||||
-- Related_flag,
|
||||
-- 'KCT' as ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- concat (Market, '_KCT') as MARKET_AUDIT_KEY,
|
||||
sum(SALES_VALUE) as SALES_VALUE,
|
||||
sum(SALES_VALUE_LY) as SALES_VALUE_LY,
|
||||
sum(SALES_VALUE_L2Y) as SALES_VALUE_L2Y,
|
||||
sum(SALES_UNIT) as SALES_UNIT,
|
||||
sum(SALES_UNIT_LY) as SALES_UNIT_LY,
|
||||
sum(SALES_UNIT_L2Y) as SALES_UNIT_L2Y,
|
||||
sum(CONUTING_UNIT) as CONUTING_UNIT,
|
||||
sum(CONUTING_UNIT_LY) as CONUTING_UNIT_LY,
|
||||
sum(CONUTING_UNIT_L2Y) as CONUTING_UNIT_L2Y,
|
||||
sum(PDOT) as PDOT,
|
||||
sum(PDOT_LY) as PDOT_LY,
|
||||
sum(PDOT_LY) as PDOT_L2Y,
|
||||
sum(SALES_VALUE_CAL) as SALES_VALUE_CAL,
|
||||
sum(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY,
|
||||
sum(SALES_UNIT_CAL) as SALES_UNIT_CAL,
|
||||
sum(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY
|
||||
from
|
||||
dm.dm_ims_tf_sales
|
||||
group by
|
||||
YYYYMM,
|
||||
PACK_COD
|
||||
-- Related_flag,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY;
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,overwrite tmp.tmp_ims_tf_sales_roc
|
||||
-- 其他城市的IMS数据计算 ROC=CHT-KCT
|
||||
insert overwrite table tmp.tmp_ims_tf_sales_roc
|
||||
WITH
|
||||
DIM_YM_PACK_MARKT (
|
||||
SELECT
|
||||
YYYYMM as CHINA_YYYYMM,
|
||||
PACK_COD as CHINA_PACK_COD
|
||||
-- ,CHINA_Market
|
||||
from
|
||||
dm.dm_ims_tf_sales_china
|
||||
group by
|
||||
YYYYMM,
|
||||
PACK_COD
|
||||
-- ,CHINA_Market
|
||||
UNION
|
||||
SELECT
|
||||
YYYYMM,
|
||||
PACK_COD
|
||||
-- ,Market
|
||||
from
|
||||
tmp.tmp_ims_tf_sales_kct
|
||||
group by
|
||||
YYYYMM,
|
||||
PACK_COD
|
||||
-- ,Market
|
||||
),
|
||||
CHPA_SALES (
|
||||
select
|
||||
YYYYMM,
|
||||
PACK_COD,
|
||||
-- CHINA_Market,
|
||||
sum(SALES_VALUE) as CHINA_SALES_VALUE,
|
||||
sum(SALES_VALUE_LY) as CHINA_SALES_VALUE_LY,
|
||||
sum(SALES_VALUE_L2Y) as CHINA_SALES_VALUE_L2Y,
|
||||
sum(SALES_UNIT) as CHINA_SALES_UNIT,
|
||||
sum(SALES_UNIT_LY) as CHINA_SALES_UNIT_LY,
|
||||
sum(SALES_UNIT_L2Y) as CHINA_SALES_UNIT_L2Y,
|
||||
sum(CONUTING_UNIT) as CHINA_CONUTING_UNIT,
|
||||
sum(CONUTING_UNIT_LY) as CHINA_CONUTING_UNIT_LY,
|
||||
sum(CONUTING_UNIT_L2Y) as CHINA_CONUTING_UNIT_L2Y,
|
||||
sum(PDOT) as CHINA_PDOT,
|
||||
sum(PDOT_LY) as CHINA_PDOT_LY,
|
||||
sum(PDOT_L2Y) as CHINA_PDOT_L2Y,
|
||||
sum(SALES_VALUE_CAL) as SALES_VALUE_CAL,
|
||||
sum(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY,
|
||||
sum(SALES_UNIT_CAL) as SALES_UNIT_CAL,
|
||||
sum(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY
|
||||
from
|
||||
dm.dm_ims_tf_sales_china
|
||||
group by
|
||||
YYYYMM,
|
||||
PACK_COD
|
||||
-- ,CHINA_Market
|
||||
),
|
||||
FABO_SALES (
|
||||
select
|
||||
YYYYMM,
|
||||
PACK_COD,
|
||||
-- Market,
|
||||
sum(SALES_VALUE) as SALES_VALUE,
|
||||
sum(SALES_VALUE_LY) as SALES_VALUE_LY,
|
||||
sum(SALES_VALUE_L2Y) as SALES_VALUE_L2Y,
|
||||
sum(SALES_UNIT) as SALES_UNIT,
|
||||
sum(SALES_UNIT_LY) as SALES_UNIT_LY,
|
||||
sum(SALES_UNIT_L2Y) as SALES_UNIT_L2Y,
|
||||
sum(CONUTING_UNIT) as CONUTING_UNIT,
|
||||
sum(CONUTING_UNIT_LY) as CONUTING_UNIT_LY,
|
||||
sum(CONUTING_UNIT_L2Y) as CONUTING_UNIT_L2Y,
|
||||
sum(PDOT) as PDOT,
|
||||
sum(PDOT_LY) as PDOT_LY,
|
||||
sum(PDOT_L2Y) as PDOT_L2Y,
|
||||
sum(SALES_VALUE_CAL) as SALES_VALUE_CAL,
|
||||
sum(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY,
|
||||
sum(SALES_UNIT_CAL) as SALES_UNIT_CAL,
|
||||
sum(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY
|
||||
from
|
||||
tmp.tmp_ims_tf_sales_kct
|
||||
group by
|
||||
YYYYMM,
|
||||
PACK_COD
|
||||
-- ,Market
|
||||
)
|
||||
SELECT
|
||||
t1.CHINA_YYYYMM as YYYYMM,
|
||||
t1.CHINA_PACK_COD as PACK_COD,
|
||||
'ROC' as AUDIT_COD,
|
||||
-- null as Related_flag,
|
||||
-- 'ROC' as ORG_KEY,
|
||||
-- t1.CHINA_Market as Market,
|
||||
-- concat (t1.CHINA_Market, '_', t1.china_pack_cod) as MARKET_PACK_KEY,
|
||||
-- concat (t1.CHINA_Market, '_ROC') as MARKET_AUDIT_KEY,
|
||||
nvl (t2.CHINA_SALES_VALUE, 0) - nvl (t3.SALES_VALUE, 0) as SALES_VALUE,
|
||||
nvl (t2.CHINA_SALES_VALUE_LY, 0) - nvl (t3.SALES_VALUE_LY, 0) as SALES_VALUE_LY,
|
||||
nvl (t2.CHINA_SALES_VALUE_L2Y, 0) - nvl (t3.SALES_VALUE_L2Y, 0) as SALES_VALUE_L2Y,
|
||||
nvl (t2.CHINA_SALES_UNIT, 0) - nvl (t3.SALES_UNIT, 0) as SALES_UNIT,
|
||||
nvl (t2.CHINA_SALES_UNIT_L2Y, 0) - nvl (t3.SALES_UNIT_L2Y, 0) as SALES_UNIT_LY,
|
||||
nvl (t2.CHINA_SALES_UNIT_LY, 0) - nvl (t3.SALES_UNIT_LY, 0) as SALES_UNIT_L2Y,
|
||||
nvl (t2.CHINA_CONUTING_UNIT, 0) - nvl (t3.CONUTING_UNIT, 0) as CONUTING_UNIT,
|
||||
nvl (t2.CHINA_CONUTING_UNIT_LY, 0) - nvl (t3.CONUTING_UNIT_LY, 0) as CONUTING_UNIT_LY,
|
||||
nvl (t2.CHINA_CONUTING_UNIT_L2Y, 0) - nvl (t3.CONUTING_UNIT_L2Y, 0) as CONUTING_UNIT_L2Y,
|
||||
nvl (t2.CHINA_PDOT, 0) - nvl (t3.PDOT, 0) as PDOT,
|
||||
nvl (t2.CHINA_PDOT_LY, 0) - nvl (t3.PDOT_LY, 0) as PDOT_LY,
|
||||
nvl (t2.CHINA_PDOT_L2Y, 0) - nvl (t3.PDOT_L2Y, 0) as PDOT_L2Y,
|
||||
nvl (t2.SALES_VALUE_CAL, 0) - nvl (t3.SALES_VALUE_CAL, 0) as SALES_VALUE_CAL,
|
||||
nvl (t2.SALES_VALUE_CAL_LY, 0) - nvl (t3.SALES_VALUE_CAL_LY, 0) as SALES_VALUE_CAL_LY,
|
||||
nvl (t2.SALES_UNIT_CAL, 0) - nvl (t3.SALES_UNIT_CAL, 0) as SALES_UNIT_CAL,
|
||||
nvl (t2.SALES_UNIT_CAL_LY, 0) - nvl (t3.SALES_UNIT_CAL_LY, 0) as SALES_UNIT_CAL_LY
|
||||
FROM
|
||||
dim_ym_pack_markt t1
|
||||
LEFT JOIN chpa_sales t2 on
|
||||
-- t1.china_market = t2.china_market and
|
||||
t1.china_yyyymm = t2.yyyymm
|
||||
and t1.china_pack_cod = t2.pack_cod
|
||||
LEFT JOIN fabo_sales t3 on
|
||||
-- t1.china_market = t3.market and
|
||||
t1.china_yyyymm = t3.yyyymm
|
||||
and t1.china_pack_cod = t3.pack_cod
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
-- DBTITLE 1,insert into dm.dm_ims_tf_sales
|
||||
--将ROC的数据写入dm.dm_ims_tf_sales
|
||||
insert into
|
||||
dm.dm_ims_tf_sales
|
||||
select distinct
|
||||
YYYYMM,
|
||||
-- concat (left (YYYYMM, 4), '-', right (YYYYMM, 2), '-01') as DAY_DATE,
|
||||
PACK_COD,
|
||||
AUDIT_COD,
|
||||
-- RELATED_FLAG,
|
||||
-- ORG_KEY,
|
||||
-- Market,
|
||||
-- MARKET_PACK_KEY,
|
||||
-- MARKET_AUDIT_KEY,
|
||||
SALES_VALUE,
|
||||
SALES_VALUE_LY,
|
||||
SALES_VALUE_L2Y,
|
||||
SALES_UNIT,
|
||||
SALES_UNIT_LY,
|
||||
SALES_UNIT_L2Y,
|
||||
CONUTING_UNIT,
|
||||
CONUTING_UNIT_LY,
|
||||
CONUTING_UNIT_L2Y,
|
||||
PDOT,
|
||||
PDOT_LY,
|
||||
PDOT_L2Y,
|
||||
SALES_VALUE_CAL,
|
||||
SALES_VALUE_CAL_LY,
|
||||
SALES_UNIT_CAL,
|
||||
SALES_UNIT_CAL_LY,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT,
|
||||
from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT
|
||||
from
|
||||
tmp.tmp_ims_tf_sales_roc
|
||||
where
|
||||
sales_value <> 0
|
||||
or sales_value_ly <> 0;
|
||||
BIN
EXTERNAL/CHPA/03 dm_ims_tf_sales.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_ims_tf_sales.sql:Zone.Identifier
Normal file
Binary file not shown.
14
EXTERNAL/CHPA/03 dm_td_chpa_market_definition.sql
Normal file
14
EXTERNAL/CHPA/03 dm_td_chpa_market_definition.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DWD.DWD_GND_IMS_MARKET_DEFINITION
|
||||
-- 目标表:DM.DM_TD_CHPA_MARKET_DEFINITION
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
INSERT OVERWRITE TABLE DM.DM_TD_CHPA_MARKET_DEFINITION
|
||||
SELECT
|
||||
TA,
|
||||
MARKET,
|
||||
MARKET_DEFINITION_EN,
|
||||
MARKET_DEFINITION_CN
|
||||
FROM
|
||||
DWD.DWD_GND_IMS_MARKET_DEFINITION;
|
||||
Binary file not shown.
30
EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql
Normal file
30
EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- Databricks notebook source
|
||||
-- 源表:DWD.DWD_TD_IMS_CITY_MAPPING
|
||||
-- 目标表:DM.DM_TD_IMS_CITY_MAPPING,DWS.DWS_TD_GEOGRAPHY
|
||||
|
||||
-- COMMAND ----------
|
||||
|
||||
--dwd to dws
|
||||
--ims city和标准城市名以及拆分比mapping表
|
||||
insert overwrite table dws.dws_td_ims_city_mapping
|
||||
select distinct
|
||||
audit_cod ,
|
||||
city_c ,
|
||||
city_c_d ,
|
||||
ratio ,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
from dwd.dwd_td_ims_city_mapping
|
||||
;
|
||||
--dws to dm
|
||||
insert overwrite table dm.dm_td_ims_city_mapping
|
||||
select distinct
|
||||
audit_cod ,
|
||||
city_c ,
|
||||
city_c_d ,
|
||||
city_code,
|
||||
ratio ,
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8'),
|
||||
from_utc_timestamp(current_timestamp(),'UTC+8')
|
||||
from dws.dws_td_ims_city_mapping t1
|
||||
left join dws.dws_td_geography t2 on concat(t1.city_c_d,'市')=t2.city_name
|
||||
BIN
EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql:Zone.Identifier
Normal file
BIN
EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql:Zone.Identifier
Normal file
Binary file not shown.
Reference in New Issue
Block a user