20260520生产bug修复
1 retail的架构的陕西 对应 两个 RC 2 niad free report页面的market size ly值因直取出现未聚合的问题 3 Retail 的价格铺货率没有 1,2月份的值
This commit is contained in:
@@ -89,10 +89,10 @@ market_ta (
|
||||
)
|
||||
|
||||
,pack_market as (
|
||||
select distinct a.pack_cod,a.market,b.subbu
|
||||
from dm.dm_td_external_market_pack_mapping a
|
||||
select distinct a.pack_code as pack_cod,a.market,b.subbu
|
||||
from dm.dm_td_ext_unionall_market_pack_mapping a
|
||||
left join market_ta b on a.MARKET = b.market
|
||||
where data_source = 'Retail(Quarterly)'
|
||||
where datasource = 'Retail(Quarterly)'
|
||||
)
|
||||
,external_geo as (
|
||||
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
|
||||
on t1.yyyymm = t2.key_value
|
||||
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 (
|
||||
select t1.trty_code,
|
||||
@@ -435,4 +435,4 @@ SELECT DISTINCT
|
||||
'' AS DSM_NAME,
|
||||
'' AS MR_KCODE,
|
||||
'' AS MR_NAME
|
||||
FROM pack_2_market t2
|
||||
FROM pack_2_market t2
|
||||
|
||||
@@ -212,58 +212,132 @@ FROM
|
||||
-- 功能: 月份NIAD不进行季度汇总, 新建DM.DM_TF_EXT_RETAIL_NIAD_SALES表做关联
|
||||
-- ****************************************************
|
||||
WITH NIAD_DWD_TABLE AS (
|
||||
select
|
||||
SELECT
|
||||
a.month,
|
||||
b.iqvia_pack_code as pack_code,
|
||||
b.iqvia_pack_code AS pack_code,
|
||||
'ROC' AS zk_region,
|
||||
a.sales_unit,
|
||||
a.sales_value,
|
||||
a.sales_unit * (b.counting_unit/ coalesce(b.unit,1)) as counting_unit
|
||||
from
|
||||
SUM(a.sales_unit) AS sales_unit,
|
||||
SUM(a.sales_value) AS sales_value,
|
||||
SUM(a.sales_unit * (b.counting_unit / COALESCE(b.unit, 1))) AS counting_unit
|
||||
FROM
|
||||
dwd.dwd_gnd_ext_retail_nataional_niad a
|
||||
left join dwd.dwd_gnd_ext_retail_pack_property b
|
||||
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
|
||||
LEFT JOIN dwd.dwd_gnd_ext_retail_pack_property b
|
||||
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
|
||||
),
|
||||
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
|
||||
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,
|
||||
IFNULL(CAST(REPLACE(ly.sales_unit, ',', '') AS DECIMAL(38, 10)), 0) AS SALES_UNIT_CAL_LY,
|
||||
CAST(REPLACE(cur.sales_value, ',', '') AS DECIMAL(38, 10)) AS SALES_VALUE_CAL,
|
||||
IFNULL(CAST(REPLACE(ly.sales_value, ',', '') AS DECIMAL(38, 10)), 0) AS SALES_VALUE_CAL_LY,
|
||||
CAST(cur.counting_unit AS DECIMAL(38, 10)) AS CONUTING_UNIT,
|
||||
IFNULL(CAST(ly.counting_unit AS DECIMAL(38, 10)), 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,
|
||||
YYYYMM,
|
||||
PACK_CODE,
|
||||
CORP_CODE,
|
||||
AUDIT_CODE,
|
||||
PLATFORM_TYPE,
|
||||
STORE_NAME,
|
||||
STORE_TYPE,
|
||||
REGION_TYPE,
|
||||
PACK_FLAG,
|
||||
PROD_FLAG,
|
||||
DTP_FLAG,
|
||||
SUM(SALES_UNIT_CAL) AS SALES_UNIT_CAL,
|
||||
SUM(SALES_UNIT_CAL_LY) AS SALES_UNIT_CAL_LY,
|
||||
SUM(SALES_VALUE_CAL) AS SALES_VALUE_CAL,
|
||||
SUM(SALES_VALUE_CAL_LY) AS SALES_VALUE_CAL_LY,
|
||||
SUM(CONUTING_UNIT) AS CONUTING_UNIT,
|
||||
SUM(CONUTING_UNIT_LY) AS CONUTING_UNIT_LY,
|
||||
DATA_SOURCE,
|
||||
INST_CODE,
|
||||
CMPS_FLAG,
|
||||
DEPT_NAME,
|
||||
PRESCRIPTION,
|
||||
PRESCRIPTION_LY,
|
||||
NEW_CODE,
|
||||
AREA,
|
||||
H_LEVEL,
|
||||
REIMBURSE,
|
||||
REIMBURSE_TYPE,
|
||||
PRESCRIPTION_SOURCE,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
|
||||
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
|
||||
FROM (select * from NIAD_DWD_TABLE ) cur
|
||||
LEFT JOIN (select * from NIAD_DWD_TABLE ) ly
|
||||
ON CAST(CAST(ly.month AS INT) + 100 AS STRING) = cur.month
|
||||
AND ly.pack_code = cur.pack_code
|
||||
AND ly.zk_region = cur.zk_region
|
||||
FROM UNION_TABLE
|
||||
GROUP BY
|
||||
YYYYMM, PACK_CODE, CORP_CODE, AUDIT_CODE, PLATFORM_TYPE,
|
||||
STORE_NAME, STORE_TYPE, REGION_TYPE, PACK_FLAG, PROD_FLAG,
|
||||
DTP_FLAG, DATA_SOURCE, INST_CODE, CMPS_FLAG, DEPT_NAME,
|
||||
PRESCRIPTION, PRESCRIPTION_LY, NEW_CODE, AREA, H_LEVEL,
|
||||
REIMBURSE, REIMBURSE_TYPE, PRESCRIPTION_SOURCE
|
||||
|
||||
@@ -143,16 +143,23 @@ niad_pack_cods AS (
|
||||
-- 来源:Retail pack粒度数据(EC行join后为NULL,属正常)
|
||||
-- 关联键:pack_code = PACK_COD, geo_key = AUDIT_COD, YYYYMM = YYYYMM
|
||||
kpi_pivot AS (
|
||||
SELECT
|
||||
pack_code,
|
||||
YYYYMM,
|
||||
geo_key,
|
||||
MAX(CASE WHEN KPI_name = 'digital_spread_rate' THEN kpi_val END) AS DIGITAL_SPREAD_RATE,
|
||||
MAX(CASE WHEN KPI_name = 'weighted_spread_rate' THEN kpi_val END) AS WEIGHTED_SPREAD_RATE
|
||||
FROM dm.dm_zk_retail_sales_kpi
|
||||
WHERE KPI_name IN ( 'digital_spread_rate', 'weighted_spread_rate')
|
||||
AND ta = 'DM'
|
||||
GROUP BY pack_code, YYYYMM, geo_key
|
||||
select
|
||||
a.month yyyymm,
|
||||
b.iqvia_pack_code as pack_code,
|
||||
'ROC' AS geo_key,
|
||||
max(a.digital_spread_rate) as DIGITAL_SPREAD_RATE,
|
||||
max(a.weighted_spread_rate) as WEIGHTED_SPREAD_RATE
|
||||
from
|
||||
dwd.dwd_gnd_ext_retail_nataional_niad a
|
||||
left join dwd.dwd_gnd_ext_retail_pack_property b
|
||||
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
|
||||
)
|
||||
|
||||
-- 主查询:提取所有关联市场的完整销售数据
|
||||
|
||||
Reference in New Issue
Block a user