244 lines
7.5 KiB
Plaintext
244 lines
7.5 KiB
Plaintext
table Fact_Sales_Total_AIA
|
||
lineageTag: 66e3af3d-7196-48cf-bbbf-64e7dcd68fd8
|
||
|
||
column YYYYMM
|
||
dataType: string
|
||
lineageTag: c2da0e0f-208f-4d14-b291-1e5924d75d7f
|
||
summarizeBy: none
|
||
sourceColumn: YYYYMM
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column PACK_COD
|
||
dataType: string
|
||
lineageTag: 3797b680-044a-4487-9b12-8c00c7a175bf
|
||
summarizeBy: none
|
||
sourceColumn: PACK_COD
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column DATA_SOURCE
|
||
dataType: string
|
||
lineageTag: f1147874-379d-4e82-9d36-ef995ca9b7b2
|
||
summarizeBy: none
|
||
sourceColumn: DATA_SOURCE
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column SALES_UNIT_CAL
|
||
dataType: double
|
||
lineageTag: 5a4d1849-5cab-4a24-ba6a-51381063ea04
|
||
summarizeBy: sum
|
||
sourceColumn: SALES_UNIT_CAL
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column SALES_UNIT_CAL_LY
|
||
dataType: double
|
||
lineageTag: 44d6d7b2-764b-45dc-a958-21c76b840ee2
|
||
summarizeBy: sum
|
||
sourceColumn: SALES_UNIT_CAL_LY
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column SALES_VALUE_CAL
|
||
dataType: double
|
||
lineageTag: d02c2bae-b16c-4583-88a5-355d28c22adc
|
||
summarizeBy: sum
|
||
sourceColumn: SALES_VALUE_CAL
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column SALES_VALUE_CAL_LY
|
||
dataType: double
|
||
lineageTag: c639cde2-175f-4e0d-b0d1-7af28986a9b4
|
||
summarizeBy: sum
|
||
sourceColumn: SALES_VALUE_CAL_LY
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column CONUTING_UNIT
|
||
dataType: double
|
||
lineageTag: 596b9106-fa8e-4f58-b245-2f7483e8444e
|
||
summarizeBy: sum
|
||
sourceColumn: CONUTING_UNIT
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column CONUTING_UNIT_LY
|
||
dataType: double
|
||
lineageTag: 88f7011e-1dd9-4804-a66f-ae7d8794b099
|
||
summarizeBy: sum
|
||
sourceColumn: CONUTING_UNIT_LY
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column PACK_SOURCE = ```
|
||
[PACK_COD] & [DATA_SOURCE]
|
||
```
|
||
lineageTag: 154b50db-3939-4522-b099-c670eb0f3fec
|
||
summarizeBy: none
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column DATE_KEY = DATE(LEFT([YYYYMM],4),RIGHT([YYYYMM],2),"01")
|
||
formatString: General Date
|
||
lineageTag: d6ed09aa-8b6b-478c-86ad-17867e5b1f56
|
||
summarizeBy: none
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column MARKET
|
||
dataType: string
|
||
lineageTag: ecd7241a-ee49-45f1-bee9-f939e17a59de
|
||
summarizeBy: none
|
||
sourceColumn: MARKET
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column PDOT
|
||
dataType: double
|
||
lineageTag: 7229acee-56c5-46ba-af59-ed65644e9889
|
||
summarizeBy: sum
|
||
sourceColumn: PDOT
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
column PDOT_LY
|
||
dataType: double
|
||
lineageTag: b73230b7-1966-4d35-a05f-51cbcef42dac
|
||
summarizeBy: sum
|
||
sourceColumn: PDOT_LY
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isGeneralNumber":true}
|
||
|
||
partition Fact_Sales_Total_AIA = m
|
||
mode: import
|
||
queryGroup: Fact_Sales
|
||
source = ```
|
||
let
|
||
Source =
|
||
Value.NativeQuery(
|
||
Databricks.Catalogs(
|
||
ServerAddress, HttpPath, [
|
||
Catalog = CatalogName,
|
||
Database = null,
|
||
EnableAutomaticProxyDiscovery = null,EnableQueryResultDownload="0"
|
||
]
|
||
){
|
||
[Name = CatalogName, Kind = "Database"]
|
||
}[Data],
|
||
"-- ============================================================
|
||
-- CTE 1: 品牌市场维度(小表,后续可广播)
|
||
-- ============================================================
|
||
WITH temp AS (
|
||
SELECT
|
||
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)'
|
||
),
|
||
|
||
-- ============================================================
|
||
-- 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
|
||
),
|
||
|
||
-- ============================================================
|
||
-- CTE 3: 事实销售数据
|
||
-- 修复:移除未使用的 dm_aia_hp_flag LEFT JOIN(AIA_HP_FLAG 最终未输出)
|
||
-- 修复:PDOT CASE 中 prescription → PDOT
|
||
-- 修复:末尾逗号去除
|
||
-- ============================================================
|
||
fact_sales AS (
|
||
SELECT
|
||
A.YYYYMM,
|
||
A.MARKET,
|
||
A.PACK_COD, -- ⚠️ 如字段实际为 PACK_CODE 请确认
|
||
A.AUDIT_COD,
|
||
A.DATA_SOURCE,
|
||
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,
|
||
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,
|
||
MARKET
|
||
"
|
||
& UsingLimit,
|
||
null,
|
||
[
|
||
EnableFolding = true
|
||
]
|
||
)
|
||
in
|
||
Source
|
||
```
|
||
|
||
annotation PBI_NavigationStepName = Navigation
|
||
|
||
annotation PBI_ResultType = Table
|
||
|
||
annotation TabularEditor_TableGroup = 05_FactTable
|
||
|