Compare commits
8 Commits
county_202
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| abf7bb0f04 | |||
| 5b626ade77 | |||
| 1b0186db2a | |||
| ce8c9cfa09 | |||
| 719fd73bae | |||
| ca91505441 | |||
| 405f9393ed | |||
| d39402998c |
@@ -298,11 +298,11 @@ select * from tmp.tmp_county_dm_td_external_packinfo
|
|||||||
insert overwrite table tmp.tmp_thc_dm_td_external_packinfo
|
insert overwrite table tmp.tmp_thc_dm_td_external_packinfo
|
||||||
with temp as ( -- 临时表补充维度
|
with temp as ( -- 临时表补充维度
|
||||||
SELECT
|
SELECT
|
||||||
iqvia_pack_code PACK_COD,
|
PACK_COD PACK_COD,
|
||||||
MAX(B.PACK_DES) PACK_DES,
|
MAX(B.PACK_DES) PACK_DES,
|
||||||
MAX(B.STGH_DES) STGH_DES,
|
MAX(B.STGH_DES) STGH_DES,
|
||||||
MAX(B.PACK_LCH) PACK_LCH,
|
MAX(B.PACK_LCH) PACK_LCH,
|
||||||
MAX(B.iqvia_prod_code) PROD_COD,
|
MAX(B.prod_cod) PROD_COD,
|
||||||
MAX(B.PROD_DES) PROD_DES,
|
MAX(B.PROD_DES) PROD_DES,
|
||||||
MAX(B.PROD_DES_C) PROD_DES_C,
|
MAX(B.PROD_DES_C) PROD_DES_C,
|
||||||
MAX(B.CMPS_COD) CMPS_COD,
|
MAX(B.CMPS_COD) CMPS_COD,
|
||||||
@@ -358,8 +358,8 @@ with temp as ( -- 临时表补充维度
|
|||||||
WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4
|
WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4
|
||||||
ELSE 5
|
ELSE 5
|
||||||
END GEN_RN
|
END GEN_RN
|
||||||
FROM dwd.dwd_gnd_ext_thc_pack_property B
|
FROM dm.dm_thc_pack_property B
|
||||||
GROUP BY B.iqvia_pack_code
|
GROUP BY B.pack_cod
|
||||||
)
|
)
|
||||||
select
|
select
|
||||||
A.PACK_COD
|
A.PACK_COD
|
||||||
@@ -435,11 +435,11 @@ with temp as ( -- dm.dm_td_external_packinfo_temp 该表数
|
|||||||
--01首先是根据主表数据(带多个source)关联chpa的pack_porperty表,取出相关维度
|
--01首先是根据主表数据(带多个source)关联chpa的pack_porperty表,取出相关维度
|
||||||
--02chpa中,没有的code,他的维度字段会被置为空,所以要关联我们自己处理好的维度表,来补充相关维度
|
--02chpa中,没有的code,他的维度字段会被置为空,所以要关联我们自己处理好的维度表,来补充相关维度
|
||||||
SELECT
|
SELECT
|
||||||
iqvia_pack_code PACK_COD,
|
pack_cod PACK_COD,
|
||||||
MAX(B.PACK_DES) PACK_DES,
|
MAX(B.PACK_DES) PACK_DES,
|
||||||
MAX(B.STGH_DES) STGH_DES,
|
MAX(B.STGH_DES) STGH_DES,
|
||||||
MAX(B.PACK_LCH) PACK_LCH,
|
MAX(B.PACK_LCH) PACK_LCH,
|
||||||
MAX(B.iqvia_prod_code) PROD_COD,
|
MAX(B.prod_cod) PROD_COD,
|
||||||
MAX(B.PROD_DES) PROD_DES,
|
MAX(B.PROD_DES) PROD_DES,
|
||||||
MAX(B.PROD_DES_C) PROD_DES_C,
|
MAX(B.PROD_DES_C) PROD_DES_C,
|
||||||
MAX(B.CMPS_COD) CMPS_COD,
|
MAX(B.CMPS_COD) CMPS_COD,
|
||||||
@@ -495,8 +495,8 @@ with temp as ( -- dm.dm_td_external_packinfo_temp 该表数
|
|||||||
WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4
|
WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4
|
||||||
ELSE 5
|
ELSE 5
|
||||||
END GEN_RN
|
END GEN_RN
|
||||||
FROM dwd.dwd_gnd_ext_chc_pack_property B
|
FROM dm.dm_chc_pack_property B
|
||||||
GROUP BY B.iqvia_pack_code
|
GROUP BY B.pack_cod
|
||||||
)
|
)
|
||||||
select
|
select
|
||||||
A.PACK_COD
|
A.PACK_COD
|
||||||
|
|||||||
@@ -876,7 +876,7 @@ with original_table(
|
|||||||
A.AUDIT_COD,
|
A.AUDIT_COD,
|
||||||
CASE
|
CASE
|
||||||
WHEN A.PROVINCE_C IN (
|
WHEN A.PROVINCE_C IN (
|
||||||
'BBU_OtherProv', 'OBU_OtherProv', 'Others',
|
'Others',
|
||||||
'ROC', 'Other Low Tiers', 'OTHER LOW TIERS'
|
'ROC', 'Other Low Tiers', 'OTHER LOW TIERS'
|
||||||
)
|
)
|
||||||
OR A.PROVINCE_C IS NULL
|
OR A.PROVINCE_C IS NULL
|
||||||
@@ -1512,7 +1512,7 @@ PROVINCE_GROUP
|
|||||||
select
|
select
|
||||||
DATA_SOURCE,
|
DATA_SOURCE,
|
||||||
AUDIT_COD,
|
AUDIT_COD,
|
||||||
null as REGION_TYPE,
|
'' as REGION_TYPE,
|
||||||
PROVINCE_GROUP
|
PROVINCE_GROUP
|
||||||
from
|
from
|
||||||
dm_td_external_geo_type_temp
|
dm_td_external_geo_type_temp
|
||||||
|
|||||||
@@ -162,6 +162,10 @@
|
|||||||
-- ('Retail(Quarterly)', 'Inhaled Extended Market', '1'),
|
-- ('Retail(Quarterly)', 'Inhaled Extended Market', '1'),
|
||||||
-- ('Retail(Quarterly)', 'BUDESONIDE Market', '1'),
|
-- ('Retail(Quarterly)', 'BUDESONIDE Market', '1'),
|
||||||
-- ('Retail(Quarterly)', 'PPI Oral ESOMEPRAZOLE Market', '1'),
|
-- ('Retail(Quarterly)', 'PPI Oral ESOMEPRAZOLE Market', '1'),
|
||||||
|
-- -- Retail藏数逻辑调整,Symbicort Market、Respules Market、Respiratory Maintenance Market省份数据要放出来,影响AI取数
|
||||||
|
-- ('Retail(Quarterly)', 'Symbicort Market', '1'),
|
||||||
|
-- ('Retail(Quarterly)', 'Respules Market', '1'),
|
||||||
|
-- ('Retail(Quarterly)', 'Respiratory Maintenance', '1'),
|
||||||
|
|
||||||
-- -- DTP(Quarterly) 部分
|
-- -- DTP(Quarterly) 部分
|
||||||
-- ('DTP(Quarterly)', 'EGFR TKI Market', '1'),
|
-- ('DTP(Quarterly)', 'EGFR TKI Market', '1'),
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ FROM DM.dm_td_org P2
|
|||||||
-- COMMAND ----------
|
-- COMMAND ----------
|
||||||
|
|
||||||
--
|
--
|
||||||
insert into DM.DM_TD_EXT_RETAIL_ORG
|
insert overwrite DM.DM_TD_EXT_COUNTY_ORG
|
||||||
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
|
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
|
||||||
TEAM,
|
TEAM,
|
||||||
MR_TRTY_CODE,
|
MR_TRTY_CODE,
|
||||||
@@ -171,7 +171,7 @@ province_market AS (
|
|||||||
LEFT JOIN dwd.dwd_td_institution t2 ON t1.inst_code = t2.inst_code
|
LEFT JOIN dwd.dwd_td_institution t2 ON t1.inst_code = t2.inst_code
|
||||||
INNER JOIN family_2_markt t3 ON t1.family_code = t3.prd_family_cd
|
INNER JOIN family_2_markt t3 ON t1.family_code = t3.prd_family_cd
|
||||||
)
|
)
|
||||||
|
,part1(
|
||||||
-- ════════════════════════════════════════════
|
-- ════════════════════════════════════════════
|
||||||
-- 主查询 Part 1:正常地理覆盖行
|
-- 主查询 Part 1:正常地理覆盖行
|
||||||
-- ════════════════════════════════════════════
|
-- ════════════════════════════════════════════
|
||||||
@@ -208,6 +208,24 @@ INNER JOIN province_market t2 ON t1.mr_trty_code = t2.trty_code
|
|||||||
INNER JOIN external_geo t3 ON t2.province_name = t3.province_c
|
INNER JOIN external_geo t3 ON t2.province_name = t3.province_c
|
||||||
WHERE t2.market IS NOT NULL
|
WHERE t2.market IS NOT NULL
|
||||||
AND t3.audit_cod IS NOT NULL
|
AND t3.audit_cod IS NOT NULL
|
||||||
|
)
|
||||||
|
|
||||||
|
,all_combinations AS (
|
||||||
|
SELECT
|
||||||
|
/*+ BROADCAST(geo) */
|
||||||
|
p.market,
|
||||||
|
P.subbu,
|
||||||
|
geo.audit_cod
|
||||||
|
FROM (SELECT DISTINCT market,subbu FROM pack_2_market) p
|
||||||
|
CROSS JOIN external_geo geo
|
||||||
|
GROUP BY
|
||||||
|
p.market,
|
||||||
|
P.subbu,
|
||||||
|
geo.audit_cod
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
SELECT * FROM part1
|
||||||
|
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
||||||
@@ -220,12 +238,12 @@ SELECT DISTINCT
|
|||||||
'ROC' AS rc_code,
|
'ROC' AS rc_code,
|
||||||
'ROC' AS rc_name_en,
|
'ROC' AS rc_name_en,
|
||||||
'Other Low Tiers' AS RegionCenter,
|
'Other Low Tiers' AS RegionCenter,
|
||||||
'ROC' AS AUDIT_COD,
|
ac.audit_cod AS AUDIT_COD,
|
||||||
t2.MARKET,
|
ac.market,
|
||||||
'All Channel' AS bu_category,
|
'All Channel' AS bu_category,
|
||||||
nvl(subbu,'BBU_County') AS bu_name_en,
|
NVL(subbu,'ROC') AS bu_name_en,
|
||||||
nvl(subbu,'BBU_County') AS sub_bu_name,
|
NVL(subbu,'ROC') AS sub_bu_name,
|
||||||
nvl(subbu,'BBU_County') AS sub_bu_code_auth,
|
NVL(subbu,'ROC') AS sub_bu_code_auth,
|
||||||
'IQVIA-COUNTY(Quarterly)' AS bu_code_auth,
|
'IQVIA-COUNTY(Quarterly)' AS bu_code_auth,
|
||||||
'IQVIA-COUNTY(Quarterly)' AS DATA_SOURCE,
|
'IQVIA-COUNTY(Quarterly)' AS DATA_SOURCE,
|
||||||
1 AS REGION_RATIO,
|
1 AS REGION_RATIO,
|
||||||
@@ -242,4 +260,7 @@ SELECT DISTINCT
|
|||||||
'' AS DSM_NAME,
|
'' AS DSM_NAME,
|
||||||
'' AS MR_KCODE,
|
'' AS MR_KCODE,
|
||||||
'' AS MR_NAME
|
'' AS MR_NAME
|
||||||
FROM pack_2_market t2
|
FROM all_combinations ac
|
||||||
|
LEFT ANTI JOIN part1 p
|
||||||
|
ON ac.market = p.market
|
||||||
|
AND ac.audit_cod = p.audit_cod
|
||||||
|
|||||||
@@ -89,10 +89,10 @@ market_ta (
|
|||||||
)
|
)
|
||||||
|
|
||||||
,pack_market as (
|
,pack_market as (
|
||||||
select distinct a.pack_cod,a.market,b.subbu
|
select distinct a.pack_code as pack_cod,a.market,b.subbu
|
||||||
from dm.dm_td_external_market_pack_mapping a
|
from dm.dm_td_ext_unionall_market_pack_mapping a
|
||||||
left join market_ta b on a.MARKET = b.market
|
left join market_ta b on a.MARKET = b.market
|
||||||
where data_source = 'Retail(Quarterly)'
|
where datasource = 'Retail(Quarterly)'
|
||||||
)
|
)
|
||||||
,external_geo as (
|
,external_geo as (
|
||||||
select distinct province_c,audit_cod,REGION_CENTER
|
select distinct province_c,audit_cod,REGION_CENTER
|
||||||
@@ -132,7 +132,7 @@ from dm.dm_td_sd_territory_indication t1
|
|||||||
inner join YM_CVH t2
|
inner join YM_CVH t2
|
||||||
on t1.yyyymm = t2.key_value
|
on t1.yyyymm = t2.key_value
|
||||||
where bu in ('Retail') --20260320 chenwu Retail数据源的架构,去掉OBU,只保留Retail
|
where bu in ('Retail') --20260320 chenwu Retail数据源的架构,去掉OBU,只保留Retail
|
||||||
and t1.key_hp<>3 --chenwu 20250904 排除双考影响
|
and t1.key_hp=1 --chenwu 20260519 排除双考影响
|
||||||
)
|
)
|
||||||
,province_market as (
|
,province_market as (
|
||||||
select t1.trty_code,
|
select t1.trty_code,
|
||||||
|
|||||||
@@ -212,58 +212,132 @@ FROM
|
|||||||
-- 功能: 月份NIAD不进行季度汇总, 新建DM.DM_TF_EXT_RETAIL_NIAD_SALES表做关联
|
-- 功能: 月份NIAD不进行季度汇总, 新建DM.DM_TF_EXT_RETAIL_NIAD_SALES表做关联
|
||||||
-- ****************************************************
|
-- ****************************************************
|
||||||
WITH NIAD_DWD_TABLE AS (
|
WITH NIAD_DWD_TABLE AS (
|
||||||
select
|
SELECT
|
||||||
a.month,
|
a.month,
|
||||||
b.iqvia_pack_code as pack_code,
|
b.iqvia_pack_code AS pack_code,
|
||||||
'ROC' AS zk_region,
|
'ROC' AS zk_region,
|
||||||
a.sales_unit,
|
SUM(a.sales_unit) AS sales_unit,
|
||||||
a.sales_value,
|
SUM(a.sales_value) AS sales_value,
|
||||||
a.sales_unit * (b.counting_unit/ coalesce(b.unit,1)) as counting_unit
|
SUM(a.sales_unit * (b.counting_unit / COALESCE(b.unit, 1))) AS counting_unit
|
||||||
from
|
FROM
|
||||||
dwd.dwd_gnd_ext_retail_nataional_niad a
|
dwd.dwd_gnd_ext_retail_nataional_niad a
|
||||||
left join dwd.dwd_gnd_ext_retail_pack_property b
|
LEFT JOIN dwd.dwd_gnd_ext_retail_pack_property b
|
||||||
on case
|
ON CASE
|
||||||
when length(zk_product_id) < 7 then right(concat('0000000', zk_product_id), 7)
|
WHEN LENGTH(zk_product_id) < 7 THEN RIGHT(CONCAT('0000000', zk_product_id), 7)
|
||||||
else zk_product_id
|
ELSE zk_product_id
|
||||||
end = b.product_id
|
END = b.product_id
|
||||||
where
|
WHERE
|
||||||
a.zk_region = '全国'
|
a.zk_region = '全国'
|
||||||
|
GROUP BY
|
||||||
|
a.month, b.iqvia_pack_code
|
||||||
|
),
|
||||||
|
UNION_TABLE AS (
|
||||||
|
-- 当期
|
||||||
|
SELECT
|
||||||
|
cur.month AS YYYYMM,
|
||||||
|
cur.pack_code AS PACK_CODE,
|
||||||
|
'' AS CORP_CODE,
|
||||||
|
cur.zk_region AS AUDIT_CODE,
|
||||||
|
'' AS PLATFORM_TYPE,
|
||||||
|
'' AS STORE_NAME,
|
||||||
|
'' AS STORE_TYPE,
|
||||||
|
'' AS REGION_TYPE,
|
||||||
|
'' AS PACK_FLAG,
|
||||||
|
'' AS PROD_FLAG,
|
||||||
|
'' AS DTP_FLAG,
|
||||||
|
CAST(REPLACE(cur.sales_unit, ',', '') AS DECIMAL(38, 10)) AS SALES_UNIT_CAL,
|
||||||
|
0 AS SALES_UNIT_CAL_LY,
|
||||||
|
CAST(REPLACE(cur.sales_value, ',', '') AS DECIMAL(38, 10)) AS SALES_VALUE_CAL,
|
||||||
|
0 AS SALES_VALUE_CAL_LY,
|
||||||
|
CAST(cur.counting_unit AS DECIMAL(38, 10)) AS CONUTING_UNIT,
|
||||||
|
0 AS CONUTING_UNIT_LY,
|
||||||
|
'Retail(Quarterly)' AS DATA_SOURCE,
|
||||||
|
'' AS INST_CODE,
|
||||||
|
'' AS CMPS_FLAG,
|
||||||
|
'' AS DEPT_NAME,
|
||||||
|
'' AS PRESCRIPTION,
|
||||||
|
'' AS PRESCRIPTION_LY,
|
||||||
|
'' AS NEW_CODE,
|
||||||
|
'' AS AREA,
|
||||||
|
'' AS H_LEVEL,
|
||||||
|
'' AS REIMBURSE,
|
||||||
|
'' AS REIMBURSE_TYPE,
|
||||||
|
'' AS PRESCRIPTION_SOURCE
|
||||||
|
FROM NIAD_DWD_TABLE cur
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
-- 同期(去年)
|
||||||
|
SELECT
|
||||||
|
CAST(CAST(cur.month AS INT) + 100 AS STRING) AS YYYYMM,
|
||||||
|
cur.pack_code AS PACK_CODE,
|
||||||
|
'' AS CORP_CODE,
|
||||||
|
cur.zk_region AS AUDIT_CODE,
|
||||||
|
'' AS PLATFORM_TYPE,
|
||||||
|
'' AS STORE_NAME,
|
||||||
|
'' AS STORE_TYPE,
|
||||||
|
'' AS REGION_TYPE,
|
||||||
|
'' AS PACK_FLAG,
|
||||||
|
'' AS PROD_FLAG,
|
||||||
|
'' AS DTP_FLAG,
|
||||||
|
0 AS SALES_UNIT_CAL,
|
||||||
|
CAST(REPLACE(cur.sales_unit, ',', '') AS DECIMAL(38, 10)) AS SALES_UNIT_CAL_LY,
|
||||||
|
0 AS SALES_VALUE_CAL,
|
||||||
|
CAST(REPLACE(cur.sales_value, ',', '') AS DECIMAL(38, 10)) AS SALES_VALUE_CAL_LY,
|
||||||
|
0 AS CONUTING_UNIT,
|
||||||
|
CAST(cur.counting_unit AS DECIMAL(38, 10)) AS CONUTING_UNIT_LY,
|
||||||
|
'Retail(Quarterly)' AS DATA_SOURCE,
|
||||||
|
'' AS INST_CODE,
|
||||||
|
'' AS CMPS_FLAG,
|
||||||
|
'' AS DEPT_NAME,
|
||||||
|
'' AS PRESCRIPTION,
|
||||||
|
'' AS PRESCRIPTION_LY,
|
||||||
|
'' AS NEW_CODE,
|
||||||
|
'' AS AREA,
|
||||||
|
'' AS H_LEVEL,
|
||||||
|
'' AS REIMBURSE,
|
||||||
|
'' AS REIMBURSE_TYPE,
|
||||||
|
'' AS PRESCRIPTION_SOURCE
|
||||||
|
FROM NIAD_DWD_TABLE cur
|
||||||
|
WHERE CAST(cur.month AS INT) + 100 <= (SELECT CAST(MAX(month) AS INT) FROM NIAD_DWD_TABLE)
|
||||||
)
|
)
|
||||||
INSERT OVERWRITE TABLE DM.DM_TF_EXT_RETAIL_NIAD_SALES
|
INSERT OVERWRITE TABLE DM.DM_TF_EXT_RETAIL_NIAD_SALES
|
||||||
SELECT
|
SELECT
|
||||||
cur.month AS YYYYMM,
|
YYYYMM,
|
||||||
cur.pack_code AS PACK_CODE,
|
PACK_CODE,
|
||||||
'' AS CORP_CODE,
|
CORP_CODE,
|
||||||
cur.zk_region AS AUDIT_CODE,
|
AUDIT_CODE,
|
||||||
'' AS PLATFORM_TYPE,
|
PLATFORM_TYPE,
|
||||||
'' AS STORE_NAME,
|
STORE_NAME,
|
||||||
'' AS STORE_TYPE,
|
STORE_TYPE,
|
||||||
'' AS REGION_TYPE,
|
REGION_TYPE,
|
||||||
'' AS PACK_FLAG,
|
PACK_FLAG,
|
||||||
'' AS PROD_FLAG,
|
PROD_FLAG,
|
||||||
'' AS DTP_FLAG,
|
DTP_FLAG,
|
||||||
CAST(REPLACE(cur.sales_unit, ',', '') AS DECIMAL(38, 10)) AS SALES_UNIT_CAL,
|
SUM(SALES_UNIT_CAL) AS SALES_UNIT_CAL,
|
||||||
IFNULL(CAST(REPLACE(ly.sales_unit, ',', '') AS DECIMAL(38, 10)), 0) AS SALES_UNIT_CAL_LY,
|
SUM(SALES_UNIT_CAL_LY) AS SALES_UNIT_CAL_LY,
|
||||||
CAST(REPLACE(cur.sales_value, ',', '') AS DECIMAL(38, 10)) AS SALES_VALUE_CAL,
|
SUM(SALES_VALUE_CAL) AS SALES_VALUE_CAL,
|
||||||
IFNULL(CAST(REPLACE(ly.sales_value, ',', '') AS DECIMAL(38, 10)), 0) AS SALES_VALUE_CAL_LY,
|
SUM(SALES_VALUE_CAL_LY) AS SALES_VALUE_CAL_LY,
|
||||||
CAST(cur.counting_unit AS DECIMAL(38, 10)) AS CONUTING_UNIT,
|
SUM(CONUTING_UNIT) AS CONUTING_UNIT,
|
||||||
IFNULL(CAST(ly.counting_unit AS DECIMAL(38, 10)), 0) AS CONUTING_UNIT_LY,
|
SUM(CONUTING_UNIT_LY) AS CONUTING_UNIT_LY,
|
||||||
'Retail(Quarterly)' AS DATA_SOURCE,
|
DATA_SOURCE,
|
||||||
'' AS INST_CODE,
|
INST_CODE,
|
||||||
'' AS CMPS_FLAG,
|
CMPS_FLAG,
|
||||||
'' AS DEPT_NAME,
|
DEPT_NAME,
|
||||||
'' AS PRESCRIPTION,
|
PRESCRIPTION,
|
||||||
'' AS PRESCRIPTION_LY,
|
PRESCRIPTION_LY,
|
||||||
'' AS NEW_CODE,
|
NEW_CODE,
|
||||||
'' AS AREA,
|
AREA,
|
||||||
'' AS H_LEVEL,
|
H_LEVEL,
|
||||||
'' AS REIMBURSE,
|
REIMBURSE,
|
||||||
'' AS REIMBURSE_TYPE,
|
REIMBURSE_TYPE,
|
||||||
'' AS PRESCRIPTION_SOURCE,
|
PRESCRIPTION_SOURCE,
|
||||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
||||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
||||||
FROM (select * from NIAD_DWD_TABLE ) cur
|
FROM UNION_TABLE
|
||||||
LEFT JOIN (select * from NIAD_DWD_TABLE ) ly
|
GROUP BY
|
||||||
ON CAST(CAST(ly.month AS INT) + 100 AS STRING) = cur.month
|
YYYYMM, PACK_CODE, CORP_CODE, AUDIT_CODE, PLATFORM_TYPE,
|
||||||
AND ly.pack_code = cur.pack_code
|
STORE_NAME, STORE_TYPE, REGION_TYPE, PACK_FLAG, PROD_FLAG,
|
||||||
AND ly.zk_region = cur.zk_region
|
DTP_FLAG, DATA_SOURCE, INST_CODE, CMPS_FLAG, DEPT_NAME,
|
||||||
|
PRESCRIPTION, PRESCRIPTION_LY, NEW_CODE, AREA, H_LEVEL,
|
||||||
|
REIMBURSE, REIMBURSE_TYPE, PRESCRIPTION_SOURCE
|
||||||
|
|||||||
@@ -80,10 +80,10 @@ SELECT
|
|||||||
T0.STORE_TYPE,
|
T0.STORE_TYPE,
|
||||||
T0.REGION_TYPE,
|
T0.REGION_TYPE,
|
||||||
T0.DATA_SOURCE,
|
T0.DATA_SOURCE,
|
||||||
CASE WHEN P.MARKET IS NOT NULL AND T0.PACK_FLAG = 1 THEN 1
|
CASE WHEN P.MARKET IS NOT NULL THEN 1
|
||||||
WHEN P.MARKET IS NOT NULL THEN 2
|
WHEN P.MARKET IS NOT NULL THEN 2
|
||||||
ELSE 0 END PACK_FLAG,
|
ELSE 0 END PACK_FLAG,
|
||||||
CASE WHEN P.MARKET IS NOT NULL AND T0.PROD_FLAG = 1 THEN 1
|
CASE WHEN P.MARKET IS NOT NULL THEN 1
|
||||||
WHEN P.MARKET IS NOT NULL THEN 2
|
WHEN P.MARKET IS NOT NULL THEN 2
|
||||||
WHEN T0.MARKET = 'Metoprolol Succinate Market' AND PACK.PROD_DES = 'BETALOC ZOK' THEN 1
|
WHEN T0.MARKET = 'Metoprolol Succinate Market' AND PACK.PROD_DES = 'BETALOC ZOK' THEN 1
|
||||||
WHEN T0.MARKET = 'Atorvastatin Market' AND PACK.PROD_DES = 'LIPITOR' THEN 1
|
WHEN T0.MARKET = 'Atorvastatin Market' AND PACK.PROD_DES = 'LIPITOR' THEN 1
|
||||||
|
|||||||
@@ -143,16 +143,23 @@ niad_pack_cods AS (
|
|||||||
-- 来源:Retail pack粒度数据(EC行join后为NULL,属正常)
|
-- 来源:Retail pack粒度数据(EC行join后为NULL,属正常)
|
||||||
-- 关联键:pack_code = PACK_COD, geo_key = AUDIT_COD, YYYYMM = YYYYMM
|
-- 关联键:pack_code = PACK_COD, geo_key = AUDIT_COD, YYYYMM = YYYYMM
|
||||||
kpi_pivot AS (
|
kpi_pivot AS (
|
||||||
SELECT
|
select
|
||||||
pack_code,
|
a.month yyyymm,
|
||||||
YYYYMM,
|
b.iqvia_pack_code as pack_code,
|
||||||
geo_key,
|
'ROC' AS geo_key,
|
||||||
MAX(CASE WHEN KPI_name = 'digital_spread_rate' THEN kpi_val END) AS DIGITAL_SPREAD_RATE,
|
max(a.digital_spread_rate) as DIGITAL_SPREAD_RATE,
|
||||||
MAX(CASE WHEN KPI_name = 'weighted_spread_rate' THEN kpi_val END) AS WEIGHTED_SPREAD_RATE
|
max(a.weighted_spread_rate) as WEIGHTED_SPREAD_RATE
|
||||||
FROM dm.dm_zk_retail_sales_kpi
|
from
|
||||||
WHERE KPI_name IN ( 'digital_spread_rate', 'weighted_spread_rate')
|
dwd.dwd_gnd_ext_retail_nataional_niad a
|
||||||
AND ta = 'DM'
|
left join dwd.dwd_gnd_ext_retail_pack_property b
|
||||||
GROUP BY pack_code, YYYYMM, geo_key
|
on case
|
||||||
|
when length(zk_product_id) < 7 then right(concat('0000000', zk_product_id), 7)
|
||||||
|
else zk_product_id
|
||||||
|
end = b.product_id
|
||||||
|
where
|
||||||
|
a.zk_region = '全国'
|
||||||
|
group by
|
||||||
|
a.month,b.iqvia_pack_code
|
||||||
)
|
)
|
||||||
|
|
||||||
-- 主查询:提取所有关联市场的完整销售数据
|
-- 主查询:提取所有关联市场的完整销售数据
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ with geo_xiehe as (-- dwd层表
|
|||||||
group by fact_province,fact_city,geo_city,nvl(geo_province,'')
|
group by fact_province,fact_city,geo_city,nvl(geo_province,'')
|
||||||
)
|
)
|
||||||
|
|
||||||
-- 特殊区域:'黑吉辽','云贵川青','湖北','甘肃','其他地区'
|
-- 特殊区域:'黑吉辽','云贵川','湖北','其他地区'
|
||||||
select
|
select
|
||||||
-- a.*,
|
-- a.*,
|
||||||
concat('xiehe_',nvl(b.AUDIT_COD,concat(a.geo_province,a.fact_province,a.fact_city))) as AUDIT_COD
|
concat('xiehe_',nvl(b.AUDIT_COD,concat(a.geo_province,a.fact_province,a.fact_city))) as AUDIT_COD
|
||||||
|
|||||||
@@ -14,10 +14,10 @@
|
|||||||
-- bbu_bu_county_flag string
|
-- bbu_bu_county_flag string
|
||||||
-- )
|
-- )
|
||||||
-- USING delta
|
-- USING delta
|
||||||
-- -- location 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_geo_mapping_flag'
|
-- location 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_geo_mapping_flag'
|
||||||
-- location 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_geo_mapping_flag'
|
-- -- location 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_geo_mapping_flag'
|
||||||
|
|
||||||
-- COMMAND ----------
|
-- COMMAND ----------
|
||||||
|
|
||||||
insert overwrite dm.dm_td_ext_county_geo_mapping_flag
|
insert overwrite dm.dm_td_ext_county_geo_mapping_flag
|
||||||
select province,bbu_bu_county_flag from dwd.dwd_gnd_county_geo_mapping
|
select province,bbu_bu_county from dwd.dwd_gnd_county_geo
|
||||||
|
|||||||
Reference in New Issue
Block a user