pbi-county-2026调整

This commit is contained in:
2026-05-20 18:44:29 +08:00
parent 6e957a44f6
commit fbbd428a3b
19 changed files with 230 additions and 423 deletions

View File

@@ -195,38 +195,75 @@ table Fact_Sales_Total
[Name = CatalogName, Kind = "Database"]
}[Data],
"
WITH base AS (
-- 下推过滤,主表只扫一次
SELECT *
FROM DM.dm_tf_ext_unionall_sales_mapping
WHERE YYYYMM >= (YEAR(CURRENT_DATE()) - 3) * 100 + 1
),
geo AS (
-- 小维表预聚合去重,配合 BROADCAST 使用
SELECT DISTINCT AUDIT_COD, PROVINCE_GROUP
FROM DM.dm_td_external_geo_type
WHERE DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)'
AND PROVINCE_GROUP <> '全国'
)
-- Branch 1: 非季度数据REGION_TYPE 置空
SELECT
A.YYYYMM,
A.MARKET,
A.CLASS,
A.PACK_COD,
A.PLATFORM_TYPE,
A.STORE_TYPE,
A.REGION_TYPE,
A.DATA_SOURCE,
concat(A.MARKET,A.DATA_SOURCE) MKT_SOURCE,
SUM(NULLIF(A.SALES_UNIT_CAL, 0)) AS SALES_UNIT_CAL,
SUM(NULLIF(A.SALES_UNIT_CAL_LY, 0)) AS SALES_UNIT_CAL_LY,
SUM(NULLIF(A.SALES_VALUE_CAL, 0)) AS SALES_VALUE_CAL,
SUM(NULLIF(A.SALES_VALUE_CAL_LY, 0)) AS SALES_VALUE_CAL_LY,
SUM(NULLIF(A.CONUTING_UNIT, 0)) AS CONUTING_UNIT,
SUM(NULLIF(A.CONUTING_UNIT_LY, 0)) AS CONUTING_UNIT_LY,
SUM(NULLIF(A.PDOT, 0)) AS PDOT,
SUM(NULLIF(A.PDOT_LY, 0)) AS PDOT_LY
FROM
DM.dm_tf_ext_unionall_sales_mapping A
WHERE
YYYYMM >= (YEAR(CURRENT_DATE()) - 3) * 100 + 1 -- 内联,消除 CROSS JOIN
AND DATA_SOURCE <> 'XH Data(Quarterly)'
YYYYMM,
MARKET,
CLASS,
PACK_COD,
PLATFORM_TYPE,
STORE_TYPE,
'' AS REGION_TYPE,
DATA_SOURCE,
concat(MARKET, DATA_SOURCE) AS MKT_SOURCE,
SUM(NULLIF(SALES_UNIT_CAL, 0)) AS SALES_UNIT_CAL,
SUM(NULLIF(SALES_UNIT_CAL_LY,0)) AS SALES_UNIT_CAL_LY,
SUM(NULLIF(SALES_VALUE_CAL, 0)) AS SALES_VALUE_CAL,
SUM(NULLIF(SALES_VALUE_CAL_LY,0)) AS SALES_VALUE_CAL_LY,
SUM(NULLIF(CONUTING_UNIT, 0)) AS CONUTING_UNIT,
SUM(NULLIF(CONUTING_UNIT_LY, 0)) AS CONUTING_UNIT_LY,
SUM(NULLIF(PDOT, 0)) AS PDOT,
SUM(NULLIF(PDOT_LY, 0)) AS PDOT_LY
FROM base
WHERE DATA_SOURCE NOT IN ('XH Data(Quarterly)', 'IQVIA-COUNTY(Quarterly)','AIA(Monthly)')
GROUP BY
YYYYMM, MARKET, CLASS, PACK_COD,
PLATFORM_TYPE, STORE_TYPE, DATA_SOURCE
UNION ALL
-- Branch 2: IQVIA 季度数据,关联省份分组
SELECT /*+ BROADCAST(geo) */
A.YYYYMM,
A.MARKET,
A.CLASS,
A.PACK_COD,
A.PLATFORM_TYPE,
A.STORE_TYPE,
A.REGION_TYPE,
A.DATA_SOURCE
'' as PLATFORM_TYPE,
'' as STORE_TYPE,
coalesce(B.PROVINCE_GROUP, '') AS REGION_TYPE,
A.DATA_SOURCE,
concat(A.MARKET, A.DATA_SOURCE) AS MKT_SOURCE,
SUM(NULLIF(A.SALES_UNIT_CAL, 0)) AS SALES_UNIT_CAL,
SUM(NULLIF(A.SALES_UNIT_CAL_LY,0)) AS SALES_UNIT_CAL_LY,
SUM(NULLIF(A.SALES_VALUE_CAL, 0)) AS SALES_VALUE_CAL,
SUM(NULLIF(A.SALES_VALUE_CAL_LY,0)) AS SALES_VALUE_CAL_LY,
SUM(NULLIF(A.CONUTING_UNIT, 0)) AS CONUTING_UNIT,
SUM(NULLIF(A.CONUTING_UNIT_LY, 0)) AS CONUTING_UNIT_LY,
SUM(NULLIF(A.PDOT, 0)) AS PDOT,
SUM(NULLIF(A.PDOT_LY, 0)) AS PDOT_LY
FROM base A
LEFT JOIN geo B
ON A.AUDIT_COD = B.AUDIT_COD
WHERE A.DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)'
GROUP BY
A.YYYYMM, A.MARKET, A.CLASS, A.PACK_COD,
A.DATA_SOURCE,
coalesce(B.PROVINCE_GROUP, '')
"
& UsingLimit,
null,
@@ -238,7 +275,7 @@ table Fact_Sales_Total
Source
```
annotation PBI_ResultType = Table
annotation PBI_ResultType = Exception
annotation PBI_NavigationStepName = Navigation