0415
This commit is contained in:
@@ -85,7 +85,9 @@ table Fact_Sales_Total_AIA
|
||||
|
||||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||||
|
||||
column PACK_SOURCE = [PACK_COD] & [DATA_SOURCE] &[NEW_CODE]
|
||||
column PACK_SOURCE = ```
|
||||
[PACK_COD] & [DATA_SOURCE]
|
||||
```
|
||||
lineageTag: 154b50db-3939-4522-b099-c670eb0f3fec
|
||||
summarizeBy: none
|
||||
|
||||
@@ -98,45 +100,37 @@ table Fact_Sales_Total_AIA
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column NEW_CODE
|
||||
column MARKET
|
||||
dataType: string
|
||||
lineageTag: 5b3d8790-508c-4edb-942d-54e8a8824e3a
|
||||
lineageTag: ecd7241a-ee49-45f1-bee9-f939e17a59de
|
||||
summarizeBy: none
|
||||
sourceColumn: NEW_CODE
|
||||
sourceColumn: MARKET
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column PRESCRIPTION
|
||||
column PDOT
|
||||
dataType: double
|
||||
lineageTag: 19e2de06-e0e9-46e4-a677-9f51775807b2
|
||||
lineageTag: 7229acee-56c5-46ba-af59-ed65644e9889
|
||||
summarizeBy: sum
|
||||
sourceColumn: PRESCRIPTION
|
||||
sourceColumn: PDOT
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||||
|
||||
column PRESCRIPTION_LY
|
||||
column PDOT_LY
|
||||
dataType: double
|
||||
lineageTag: 1deb1356-4697-4d1d-87aa-7b400c65b921
|
||||
lineageTag: b73230b7-1966-4d35-a05f-51cbcef42dac
|
||||
summarizeBy: sum
|
||||
sourceColumn: PRESCRIPTION_LY
|
||||
sourceColumn: PDOT_LY
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||||
|
||||
column market
|
||||
dataType: string
|
||||
lineageTag: 0f707117-7286-4c4f-b77d-f68410ef1707
|
||||
summarizeBy: none
|
||||
sourceColumn: market
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
partition Fact_Sales_Total_AIA = m
|
||||
mode: import
|
||||
queryGroup: OLD\首页
|
||||
queryGroup: Fact_Sales
|
||||
source = ```
|
||||
let
|
||||
Source =
|
||||
@@ -150,197 +144,86 @@ table Fact_Sales_Total_AIA
|
||||
){
|
||||
[Name = CatalogName, Kind = "Database"]
|
||||
}[Data],
|
||||
"
|
||||
"-- ============================================================
|
||||
-- CTE 1: 品牌市场维度(小表,后续可广播)
|
||||
-- ============================================================
|
||||
WITH temp AS (
|
||||
SELECT
|
||||
BRAND_NAME,
|
||||
BRAND_CODE,
|
||||
CompatitorMarket,
|
||||
MARKET
|
||||
FROM
|
||||
DM.DM_TD_EXTERNAL_BRAND_MARKET A
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
PROD_DES,
|
||||
max(PROD_DES_C) PROD_DES_C
|
||||
FROM
|
||||
dm.dm_td_external_packinfo
|
||||
group by
|
||||
PROD_DES
|
||||
) b on a.IMSBRAND = b.PROD_DES
|
||||
WHERE
|
||||
DEFAULTFLAG = 1
|
||||
AND A.DATA_SOURCE = 'AIA(Monthly)'
|
||||
a.BRAND_NAME,
|
||||
a.BRAND_CODE,
|
||||
a.CompatitorMarket,
|
||||
a.MARKET
|
||||
FROM DM.DM_TD_EXTERNAL_BRAND_MARKET a
|
||||
LEFT JOIN (
|
||||
SELECT PROD_DES, MAX(PROD_DES_C) AS PROD_DES_C
|
||||
FROM dm.dm_td_external_packinfo
|
||||
GROUP BY PROD_DES
|
||||
) b ON a.IMSBRAND = b.PROD_DES
|
||||
WHERE a.DEFAULTFLAG = 1
|
||||
AND a.DATA_SOURCE = 'AIA(Monthly)'
|
||||
),
|
||||
dim_rc as(
|
||||
|
||||
SELECT A.audit_cod,A.market
|
||||
FROM (
|
||||
SELECT
|
||||
DISTINCT A.AUDIT_COD,
|
||||
A.MARKET
|
||||
FROM
|
||||
dm.dm_td_external_org A
|
||||
LEFT JOIN dm.dm_aia_targethp_flag C ON A.AUDIT_COD = NVL(C.INST_CODE, 'ROC')
|
||||
AND A.DATA_SOURCE = C.DATA_SOURCE
|
||||
AND A.MARKET = C.MARKET
|
||||
where
|
||||
a.DATA_SOURCE = 'AIA(Monthly)'
|
||||
AND C.IS_TARGET_HP = 'Y'
|
||||
and a.MARKET in (
|
||||
SELECT
|
||||
market
|
||||
FROM
|
||||
temp
|
||||
WHERE
|
||||
market is NOT NULL
|
||||
or market <> ''
|
||||
UNION
|
||||
SELECT
|
||||
CompatitorMarket
|
||||
FROM
|
||||
temp
|
||||
WHERE
|
||||
len(CompatitorMarket) > 1
|
||||
)
|
||||
UNION All
|
||||
SELECT
|
||||
DISTINCT A.AUDIT_COD,
|
||||
D.CompatitorMarket AS MARKET
|
||||
FROM
|
||||
dm.dm_td_external_org A
|
||||
-- 这两个看全部机构
|
||||
-- LEFT JOIN dm.dm_aia_targethp_flag C ON A.AUDIT_COD = NVL(C.INST_CODE, 'ROC')
|
||||
-- AND A.DATA_SOURCE = C.DATA_SOURCE
|
||||
-- AND A.MARKET = C.MARKET
|
||||
LEFT JOIN (
|
||||
select
|
||||
distinct CompatitorMarket
|
||||
from
|
||||
temp
|
||||
where
|
||||
BRAND_CODE in ('B013', 'B015')
|
||||
) D ON A.MARKET = D.CompatitorMarket
|
||||
where
|
||||
a.DATA_SOURCE = 'AIA(Monthly)'
|
||||
-- AND C.IS_TARGET_HP = 'Y'
|
||||
and D.CompatitorMarket is not null
|
||||
) A
|
||||
LEFT JOIN dm.dm_ext_aia_data_remove_flag B ON A.audit_cod=b.ins_code AND A.market = B.market
|
||||
WHERE B.ins_code IS NULL --剔除异常机构
|
||||
-- ============================================================
|
||||
-- CTE 2: 提前过滤 provided_flag(避免 fact_sales 里重复执行子查询)
|
||||
-- ============================================================
|
||||
provided_insts AS (
|
||||
SELECT /*+ BROADCAST(this) */ inst_code
|
||||
FROM dm.dm_aia_provided_flag
|
||||
WHERE DATA_SOURCE = 'AIA(Monthly)'
|
||||
AND aia_provided_flag = '滚动两年有数'
|
||||
GROUP BY inst_code
|
||||
),
|
||||
market_pack_ins (
|
||||
select distinct
|
||||
azinscode as ins_code
|
||||
,market as mkt
|
||||
from dwd.dwd_gnd_aia_mark_ins_data_by_mkt
|
||||
),
|
||||
fact_sales as (
|
||||
|
||||
-- ============================================================
|
||||
-- CTE 3: 事实销售数据
|
||||
-- 修复:移除未使用的 dm_aia_hp_flag LEFT JOIN(AIA_HP_FLAG 最终未输出)
|
||||
-- 修复:PDOT CASE 中 prescription → PDOT
|
||||
-- 修复:末尾逗号去除
|
||||
-- ============================================================
|
||||
fact_sales AS (
|
||||
SELECT
|
||||
YYYYMM,
|
||||
A.PACK_COD,
|
||||
-- CORP_COD,
|
||||
A.YYYYMM,
|
||||
A.MARKET,
|
||||
A.PACK_COD, -- ⚠️ 如字段实际为 PACK_CODE 请确认
|
||||
A.AUDIT_COD,
|
||||
-- PLATFORM_TYPE,
|
||||
-- STORE_NAME,
|
||||
-- STORE_TYPE,
|
||||
-- REGION_TYPE,
|
||||
A.DATA_SOURCE,
|
||||
-- PACK_FLAG,
|
||||
-- PROD_FLAG,
|
||||
-- DTP_FLAG,
|
||||
-- INT(CMPS_FLAG) CMPS_FLAG,
|
||||
NEW_CODE,
|
||||
A.INST_CODE,
|
||||
B.AIA_HP_FLAG,
|
||||
-- DEPT_NAME,
|
||||
-- ROUND(H_LEVEL, 0) H_LEVEL,
|
||||
-- REIMBURSE,
|
||||
-- REIMBURSE_TYPE,
|
||||
-- PRESCRIPTION_SOURCE PRESCRIPTION_TYPE,
|
||||
CASE
|
||||
WHEN SALES_UNIT_CAL = 0 THEN NULL
|
||||
ELSE CAST(SALES_UNIT_CAL AS DECIMAL(35, 10))
|
||||
END SALES_UNIT_CAL,
|
||||
CASE
|
||||
WHEN SALES_UNIT_CAL_LY = 0 THEN NULL
|
||||
ELSE CAST(SALES_UNIT_CAL_LY AS DECIMAL(35, 10))
|
||||
END SALES_UNIT_CAL_LY,
|
||||
CASE
|
||||
WHEN SALES_VALUE_CAL = 0 THEN NULL
|
||||
ELSE CAST(SALES_VALUE_CAL AS DECIMAL(35, 10))
|
||||
END SALES_VALUE_CAL,
|
||||
CASE
|
||||
WHEN SALES_VALUE_CAL_LY = 0 THEN NULL
|
||||
ELSE CAST(SALES_VALUE_CAL_LY AS DECIMAL(35, 10))
|
||||
END SALES_VALUE_CAL_LY,
|
||||
CASE
|
||||
WHEN CONUTING_UNIT = 0 THEN NULL
|
||||
ELSE CAST(CONUTING_UNIT AS DECIMAL(35, 10))
|
||||
END CONUTING_UNIT,
|
||||
CASE
|
||||
WHEN CONUTING_UNIT_LY = 0 THEN NULL
|
||||
ELSE CAST(CONUTING_UNIT_LY AS DECIMAL(35, 10))
|
||||
END CONUTING_UNIT_LY,
|
||||
CASE
|
||||
WHEN prescription = 0 THEN NULL
|
||||
ELSE CAST(prescription AS DECIMAL(35, 10))
|
||||
END PRESCRIPTION,
|
||||
CASE
|
||||
WHEN prescription_ly = 0 THEN NULL
|
||||
ELSE CAST(prescription_ly AS DECIMAL(35, 10))
|
||||
END PRESCRIPTION_LY
|
||||
FROM
|
||||
DM.DM_TF_EXTERNAL_SALES A
|
||||
LEFT JOIN dm.dm_aia_hp_flag B ON A.inst_code = B.inst_code
|
||||
AND A.DATA_SOURCE = B.DATA_SOURCE
|
||||
|
||||
WHERE
|
||||
A.DATA_SOURCE = 'AIA(Monthly)'
|
||||
AND A.inst_code IN (
|
||||
SELECT
|
||||
inst_code
|
||||
FROM
|
||||
dm.dm_aia_provided_flag C
|
||||
WHERE
|
||||
C.DATA_SOURCE = 'AIA(Monthly)'
|
||||
AND C.aia_provided_flag = '滚动两年有数'
|
||||
GROUP BY
|
||||
1
|
||||
)
|
||||
|
||||
),
|
||||
t1 as (
|
||||
select
|
||||
fact_sales.*,
|
||||
dim_rc.market
|
||||
from
|
||||
fact_sales
|
||||
left join dim_rc on fact_sales.AUDIT_COD = dim_rc.AUDIT_COD
|
||||
CASE WHEN SALES_UNIT_CAL = 0 THEN NULL ELSE CAST(SALES_UNIT_CAL AS DECIMAL(35,10)) END AS SALES_UNIT_CAL,
|
||||
CASE WHEN SALES_UNIT_CAL_LY = 0 THEN NULL ELSE CAST(SALES_UNIT_CAL_LY AS DECIMAL(35,10)) END AS SALES_UNIT_CAL_LY,
|
||||
CASE WHEN SALES_VALUE_CAL = 0 THEN NULL ELSE CAST(SALES_VALUE_CAL AS DECIMAL(35,10)) END AS SALES_VALUE_CAL,
|
||||
CASE WHEN SALES_VALUE_CAL_LY = 0 THEN NULL ELSE CAST(SALES_VALUE_CAL_LY AS DECIMAL(35,10)) END AS SALES_VALUE_CAL_LY,
|
||||
CASE WHEN CONUTING_UNIT = 0 THEN NULL ELSE CAST(CONUTING_UNIT AS DECIMAL(35,10)) END AS CONUTING_UNIT,
|
||||
CASE WHEN CONUTING_UNIT_LY = 0 THEN NULL ELSE CAST(CONUTING_UNIT_LY AS DECIMAL(35,10)) END AS CONUTING_UNIT_LY,
|
||||
CASE WHEN PDOT = 0 THEN NULL ELSE CAST(PDOT AS DECIMAL(35,10)) END AS PDOT, -- 修复:原为 prescription
|
||||
CASE WHEN PDOT_LY = 0 THEN NULL ELSE CAST(PDOT_LY AS DECIMAL(35,10)) END AS PDOT_LY
|
||||
FROM DM.dm_tf_ext_unionall_market_sales A
|
||||
-- 用 CTE JOIN 替代 IN(subquery),支持 BROADCAST
|
||||
left JOIN provided_insts p ON A.AUDIT_COD = p.inst_code
|
||||
WHERE A.MARKET <> 'ALL Market'
|
||||
AND A.DATA_SOURCE = 'AIA(Monthly)'
|
||||
)
|
||||
|
||||
-- ============================================================
|
||||
-- 最终聚合
|
||||
-- ============================================================
|
||||
SELECT
|
||||
YYYYMM,
|
||||
PACK_COD,
|
||||
DATA_SOURCE,
|
||||
NEW_CODE,
|
||||
market,
|
||||
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,
|
||||
SUM(PRESCRIPTION) AS PRESCRIPTION,
|
||||
SUM(PRESCRIPTION_LY) AS PRESCRIPTION_LY
|
||||
from
|
||||
t1
|
||||
group by
|
||||
MARKET,
|
||||
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,
|
||||
SUM(PDOT) AS PDOT,
|
||||
SUM(PDOT_LY) AS PDOT_LY
|
||||
FROM fact_sales
|
||||
GROUP BY
|
||||
YYYYMM,
|
||||
PACK_COD,
|
||||
DATA_SOURCE,
|
||||
NEW_CODE,
|
||||
market
|
||||
MARKET
|
||||
"
|
||||
& UsingLimit,
|
||||
null,
|
||||
|
||||
Reference in New Issue
Block a user