This commit is contained in:
2026-05-02 14:45:40 +08:00
parent 7babc42523
commit 00dfcd1c1d
192 changed files with 463 additions and 81349 deletions

View File

@@ -1957,7 +1957,7 @@ table 00_KPI
displayFolder: 02FreeReport_NIAD
lineageTag: c23f7423-669e-4d88-aad1-98352853d75f
measure 'Over.view'
measure 'Over.view' = SELECTEDVALUE (Dim_Unit[DW])
displayFolder: 03Overview
lineageTag: 257bcce2-0323-41c8-83d7-31fb3f7da06a
@@ -2916,6 +2916,7 @@ table 00_KPI
KEEPFILTERS ( Dim_MarketTA_Total[TA] = "onco" )
),
"retail", [01.DirectRetail.rx_market.Sales.AZ],
"ec", [01.DirectEC.Fact_EC_Total.Sales.AZ],
CALCULATE (
[ExternalTotal.Value.MID],
KEEPFILTERS ( Fact_Sales_Total[MARKET] = "ALL MARKET" )
@@ -3011,6 +3012,7 @@ table 00_KPI
KEEPFILTERS ( Dim_MarketTA_Total[TA] = "onco" )
),
"retail", [01.DirectRetail.rx_market.Sales.AZ.LY],
"ec", [01.DirectEC.Fact_EC_Total.Sales.AZ.LY],
CALCULATE (
[ExternalTotal.Value.LY.MID],
KEEPFILTERS ( Fact_Sales_Total[MARKET] = "ALL MARKET" )
@@ -3330,22 +3332,15 @@ table 00_KPI
measure 'ExternalTotal.Sales.LY.KPI.Market' =
VAR _select_ds = [00.SOURCENAME]
VAR _dw = [External.SelectUnit]
VAR _flag_id = SELECTEDVALUE ( Config_VisualFlag[Flag_ID] )
RETURN
SWITCH (
TRUE ( ),
_select_ds = "retail"
&& SELECTEDVALUE ( Config_VisualFlag[Flag_ID] ) = 1,
VAR _value = [01.DirectRetail.rx_market.Sales.Total.LY]
RETURN
SWITCH (
[External.SelectUnit],
"RMB", _value,
"K RMB", DIVIDE ( _value, 1000 ),
"M RMB", DIVIDE ( _value, 1000000 ),
"USD", DIVIDE ( _value, [ExchangeRate] ),
"K USD", DIVIDE ( DIVIDE ( _value, [ExchangeRate] ), 1000 ),
"M USD", DIVIDE ( DIVIDE ( _value, [ExchangeRate] ), 1000000 )
),
_select_ds = "retail" && _flag_id = 1,
Switch_Unit_Value ( _dw, [01.DirectRetail.rx_market.Sales.Total.LY] ),
_select_ds = "ec" && _flag_id = 1,
Switch_Unit_Value ( _dw, [01.DirectEC.Fact_EC_Total.Sales.Total.LY] ),
CALCULATE (
[ExternalTotal.Sales.LY.KPI],
ALL ( Dim_Corp ),
@@ -3403,22 +3398,15 @@ table 00_KPI
measure 'ExternalTotal.Sales.KPI.Market' =
VAR _select_ds = [00.SOURCENAME]
VAR _dw = [External.SelectUnit]
VAR _flag_id = SELECTEDVALUE ( Config_VisualFlag[Flag_ID] )
RETURN
SWITCH (
TRUE ( ),
_select_ds = "retail"
&& SELECTEDVALUE ( Config_VisualFlag[Flag_ID] ) = 1,
VAR _value = [01.DirectRetail.rx_market.Sales.Total]
RETURN
SWITCH (
[External.SelectUnit],
"RMB", _value,
"K RMB", DIVIDE ( _value, 1000 ),
"M RMB", DIVIDE ( _value, 1000000 ),
"USD", DIVIDE ( _value, [ExchangeRate] ),
"K USD", DIVIDE ( DIVIDE ( _value, [ExchangeRate] ), 1000 ),
"M USD", DIVIDE ( DIVIDE ( _value, [ExchangeRate] ), 1000000 )
),
_select_ds = "retail" && _flag_id = 1,
Switch_Unit_Value ( _dw, [01.DirectRetail.rx_market.Sales.Total] ),
_select_ds = "ec" && _flag_id = 1,
Switch_Unit_Value ( _dw, [01.DirectEC.Fact_EC_Total.Sales.Total] ),
CALCULATE (
[ExternalTotal.Sales.KPI],
ALL ( Dim_Corp ),
@@ -4276,143 +4264,103 @@ table 00_KPI
lineageTag: c3852948-d323-4143-9f43-1363d8691d3b
measure 'External.Sales.MTH.MID' =
VAR DS = SELECTEDVALUE ( Dim_DataSource[SOURCENAME] )
VAR DS1 = SELECTEDVALUE ( Dim_DataSource[DATA_SOURCE] )
VAR MGDS = SELECTEDVALUE ( Dim_MergeDataSource[DATA_SOURCE] )
VAR FactDS = SELECTEDVALUE ( Fact_Sales[DATA_SOURCE] )
VAR MKT_FLAG =
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_Market ), MAX ( Dim_Market[MKT_FLAG] ),
ISFILTERED ( Dim_BrandDefaultMKT ),
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_MergeDataSource[DATA_SOURCE] ),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[MKT_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = FactDS
),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[MKT_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = DS1
)
),
0
)
VAR PROD_FLAG =
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_Market ), MAX ( Dim_Market[PRD_FLAG] ),
ISFILTERED ( Dim_BrandDefaultMKT ),
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_MergeDataSource[DATA_SOURCE] ),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[PRD_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = FactDS
),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[PRD_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = DS1
)
),
0
)
VAR period_flag = SELECTEDVALUE ( MQY[Period] ) = "mth"
VAR mm_flag = MAX ( Dim_Calendar[MONTH] ) IN { 3, 6, 9, 12 }
// ---------- 基础变量 ----------
VAR DS = [00.SOURCENAME] -- 当前数据源名称(如 AIA / Retail / CHPA
VAR MGDS = SELECTEDVALUE ( Dim_MergeDataSource[DATA_SOURCE] ) -- 合并数据源切片器选中值
// ---------- 过滤状态检测 ----------
VAR _isfilter_province =
ISFILTERED ( Dim_Geo ) || ISFILTERED ( Dim_Org )
-- 是否存在省份/组织级别的地理过滤(用于判断是否需要降维处理)
VAR _isfilter_market =
ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_BrandDefaultMKT )
-- 是否存在市场维度过滤(无此过滤时部分数据源需隐藏数据)
VAR isfilter_packinfo =
( ISFILTERED ( Dim_PackInfo[PACK_DES] )
|| ISFILTERED ( Dim_PackInfo[PACK_LCH] )
|| ISFILTERED ( Dim_PackInfo[PACK_COD] )
|| ISFILTERED ( Dim_PackInfo[PROD_PACK_CORP] ) )
-- 是否过滤到"规格包装"层级(最细粒度)
VAR _isfilter_brandinfo =
( ISFILTERED ( Dim_PackInfo[PROD_COD] )
|| ISFILTERED ( Dim_PackInfo[PROD_CORP] )
|| ISFILTERED ( Dim_PackInfo[PROD_CORP_C] )
|| ISFILTERED ( Dim_PackInfo[PROD_DES] )
|| ISFILTERED ( Dim_PackInfo[PROD_DES_C] ) )
VAR _isfilter_not_packinfo_only_brand =
NOT isfilter_packinfo && _isfilter_brandinfo
-- 是否过滤到"品牌/产品"层级
VAR _isfilter_not_packinfo_only_mole =
NOT isfilter_packinfo && NOT _isfilter_brandinfo
&& ( ISFILTERED ( Dim_PackInfo[MOLECULE_CODE_DESC] )
ISFILTERED ( Dim_PackInfo[MOLECULE_CODE_DESC] )
|| ISFILTERED ( Dim_PackInfo[MOLECULE_DES_C] )
|| ISFILTERED ( Dim_PackInfo[CMPS_COD] )
|| ISFILTERED ( Dim_PackInfo[CMPS_DES] )
|| ISFILTERED ( Dim_PackInfo[CMPS_DES_C] ) )
|| ISFILTERED ( Dim_PackInfo[CMPS_DES_C] )
-- 仅分子/成分层级过滤(未细化到品牌/包装)→ 使用 CMPS_FLAG
RETURN
SWITCH (
TRUE ( ),
//全局藏数据没有选market
// ── 全局屏蔽规则:未选 Market 时,部分场景隐藏数据 ──────────────────
NOT _isfilter_market && ISFILTERED ( Dim_Org ),
-- 无市场过滤 + 有组织过滤:仅 AIA 数据源可见,其余隐藏
IF ( DS = "AIA", [External.Sales.MTH] ),
NOT _isfilter_market
&& ( ISFILTERED ( Dim_HP_Potential_AIA )
|| ISFILTERED ( Dim_CoreDept ) ),
-- 无市场过滤 + 存在医院潜力/核心科室过滤:强制返回空白
BLANK ( ),
// ── Retail 数据源:省级下钻时按产品粒度标志位过滤重复计数 ────────────
DS = "Retail",
SWITCH (
TRUE ( ),
// 隐藏HTN Market 和 Respules Market
_isfilter_province && MKT_FLAG = 2, BLANK ( ),
// 选择月份和地理
_isfilter_province && MKT_FLAG = 0
&& OR ( period_flag, AND ( NOT period_flag, NOT mm_flag ) ),
BLANK ( ),
//若选择Molecule,选择地理,且市场是品牌报告里面的市场
MKT_FLAG = 1 && _isfilter_not_packinfo_only_mole, [External.Sales.MTH],
//除开特定市场外其余的retail针对于class选择地理或org维度值为空
_isfilter_province && ISFILTERED ( Dim_Class )
&& _isfilter_market
&& MKT_FLAG = 0,
BLANK ( ),
//选择市场,只出现品牌报告里面的有市场;
_isfilter_province && _isfilter_market && PROD_FLAG = 0,
BLANK ( ),
//若不选pack用于计算class相关KPI
_isfilter_province && NOT ISFILTERED ( Dim_PackInfo ), [External.Sales.MTH],
//若选择Molecule,没选择地理
NOT _isfilter_province && _isfilter_not_packinfo_only_mole, [External.Sales.MTH],
//若选择Molecule,选择地理
_isfilter_province && _isfilter_not_packinfo_only_mole,
CALCULATE ( [External.Sales.MTH], Fact_Sales[CMPS_FLAG] = 1 ),
//若选择BRAND,没有选择地理
NOT _isfilter_province && _isfilter_not_packinfo_only_brand,
CALCULATE (
[External.Sales.MTH],
Fact_Sales[PROD_FLAG] IN { 1, 2 }
_isfilter_province,
SWITCH (
TRUE ( ),
isfilter_packinfo,
CALCULATE (
[External.Sales.MTH],
KEEPFILTERS ( Fact_Sales[PACK_FLAG] = 1 )
),
_isfilter_brandinfo,
CALCULATE (
[External.Sales.MTH],
KEEPFILTERS ( Fact_Sales[PROD_FLAG] = 1 )
),
_isfilter_not_packinfo_only_mole,
CALCULATE (
[External.Sales.MTH],
KEEPFILTERS ( Fact_Sales[CMPS_FLAG] = 1 )
),
[External.Sales.MTH]
),
//若选择BRAND,选择地理
_isfilter_province && _isfilter_not_packinfo_only_brand,
CALCULATE ( [External.Sales.MTH], Fact_Sales[GEO_FLAG] = 1 ),
//若选择PACKAGE,不选择地理维度1表示pack+省份数据2表示pack+全国的数据
NOT _isfilter_province && isfilter_packinfo,
CALCULATE (
[External.Sales.MTH],
Fact_Sales[PACK_FLAG] IN { 1, 2 }
NOT _isfilter_province,
SWITCH (
TRUE ( ),
isfilter_packinfo,
CALCULATE (
[External.Sales.MTH],
TREATAS ( { 1, 2 }, Fact_Sales[PACK_FLAG] )
),
_isfilter_brandinfo,
CALCULATE (
[External.Sales.MTH],
TREATAS ( { 1, 2 }, Fact_Sales[PROD_FLAG] )
),
_isfilter_not_packinfo_only_mole,
CALCULATE (
[External.Sales.MTH],
TREATAS ( { 1, 0 }, Fact_Sales[CMPS_FLAG] )
),
[External.Sales.MTH]
),
//若选择PACKAGE,且省份维度不是全国
_isfilter_province && isfilter_packinfo,
CALCULATE ( [External.Sales.MTH], Fact_Sales[PACK_FLAG] = 1 ),
[External.Sales.MTH]
),
// ── DTP 数据源:有省份过滤时排除季度审计来源,避免月度/季度混用 ─────
MGDS = "DTP",
SWITCH (
TRUE ( ),
@@ -4420,11 +4368,14 @@ table 00_KPI
CALCULATE (
[External.Sales.MTH],
KEEPFILTERS (
Dim_GeoKey[AUDIT_SOURCE] <> "ROCDTP(Quarterly)"
Fact_Sales[AUDIT_SOURCE] <> "ROCDTP(Quarterly)"
)
-- 省级下钻时剔除季度 DTP 数据,保证口径一致
),
[External.Sales.MTH]
),
// ── CHPA 数据源:有省份过滤时排除 IQVIA-CHPA 月度来源,避免双计 ─────
DS = "CHPA" || MGDS = "CHPA",
SWITCH (
TRUE ( ),
@@ -4432,172 +4383,129 @@ table 00_KPI
CALCULATE (
[External.Sales.MTH],
KEEPFILTERS (
Dim_GeoKey[AUDIT_SOURCE] <> "ROCIQVIA-CHPA(Monthly)"
Fact_Sales[AUDIT_SOURCE] <> "ROCIQVIA-CHPA(Monthly)"
)
-- 省级下钻时剔除 IQVIA-CHPA 月度数据,防止与其他来源重复
),
[External.Sales.MTH]
),
// ── 默认兜底:其余数据源直接返回月度销售额 ────────────────────────────
[External.Sales.MTH]
)
/*---------------------------------KPI描述------------------------------------
------创建者zhouxin
------邮箱kmls393@astrazeneca.net
------KPI名字PDOT
------KPI公式1、若TA是ONCO且是Retail需要取DTP_FLAG为1的数据
2、若选择PACKAGE且外部渠道是Retail,不选择地理维度展示PACK_FLAG是1和2的数据(1pack+省份数据2pack+全国的数据);
3、若选择PACKAGE且外部渠道是Retail,且选择了具体的某个省份非全国展示PACK_FLAG是1的数据
4、若选择PROD且外部渠道是Retail,展示Prod_FLAG是1的数据
5、若选择地理维度且外部渠道是Retail,展示PACK_FLAG是1和2的数据
6、其余渠道取原来的PDOT kpi。
------备注1、DTP的数据不参与retail总计计算其余外部渠道数据默认是0
2、1pack+省份数据意思是提供的原始数据就是Pack+省份的数据2pack+全国的数据意思是提供的原始数据是pack+全国数据只是因为倒减在底表中显示的是pack+省份。
------创建时间2024.5.15
------修改时间2024.6.10
------修改内容添加Retail的特殊逻辑处理
----------------------------------------------------------------------------*/
/*
入口
├─ 无 Market 过滤
│ ├─ 有 Org 过滤 → 仅 AIA 可见,其余 BLANK
│ └─ 有潜力/科室过滤 → 强制 BLANK
├─ DS = Retail → 按省份 + 产品粒度Pack > Brand > Mole匹配 FLAG
├─ MGDS = DTP → 省级下钻时剔除季度来源
├─ DS/MGDS = CHPA → 省级下钻时剔除 IQVIA 月度来源
└─ 其余 → 直接返回 [External.Sales.MTH]
*/
displayFolder: 01Normal\05
lineageTag: bebca109-cab7-4c6c-b985-88ca56b0e9f7
annotation PBI_FormatHint = {"isGeneralNumber":true}
measure 'External.Sales.LY.MTH.MID' =
VAR DS = SELECTEDVALUE ( Dim_DataSource[SOURCENAME] )
VAR DS1 = SELECTEDVALUE ( Dim_DataSource[DATA_SOURCE] )
VAR MGDS = SELECTEDVALUE ( Dim_MergeDataSource[DATA_SOURCE] )
VAR FactDS = SELECTEDVALUE ( Fact_Sales[DATA_SOURCE] )
VAR MKT_FLAG =
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_Market ), MAX ( Dim_Market[MKT_FLAG] ),
ISFILTERED ( Dim_BrandDefaultMKT ),
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_MergeDataSource[DATA_SOURCE] ),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[MKT_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = FactDS
),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[MKT_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = DS1
)
),
0
)
VAR PROD_FLAG =
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_Market ), MAX ( Dim_Market[PRD_FLAG] ),
ISFILTERED ( Dim_BrandDefaultMKT ),
SWITCH (
TRUE ( ),
ISFILTERED ( Dim_MergeDataSource[DATA_SOURCE] ),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[PRD_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = FactDS
),
CALCULATE (
MAX ( Dim_BrandDefaultMKT[PRD_FLAG] ),
Dim_BrandDefaultMKT[DATA_SOURCE] = DS1
)
),
0
)
VAR period_flag = SELECTEDVALUE ( MQY[Period] ) = "mth"
VAR mm_flag = MAX ( Dim_Calendar[MONTH] ) IN { 3, 6, 9, 12 }
// ---------- 基础变量 ----------
VAR DS = [00.SOURCENAME] -- 当前数据源名称(如 AIA / Retail / CHPA
VAR MGDS = SELECTEDVALUE ( Dim_MergeDataSource[DATA_SOURCE] ) -- 合并数据源切片器选中值
// ---------- 过滤状态检测 ----------
VAR _isfilter_province =
ISFILTERED ( Dim_Geo ) || ISFILTERED ( Dim_Org )
-- 是否存在省份/组织级别的地理过滤(用于判断是否需要降维处理)
VAR _isfilter_market =
ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_BrandDefaultMKT )
-- 是否存在市场维度过滤(无此过滤时部分数据源需隐藏数据)
VAR isfilter_packinfo =
( ISFILTERED ( Dim_PackInfo[PACK_DES] )
|| ISFILTERED ( Dim_PackInfo[PACK_LCH] )
|| ISFILTERED ( Dim_PackInfo[PACK_COD] )
|| ISFILTERED ( Dim_PackInfo[PROD_PACK_CORP] ) )
-- 是否过滤到"规格包装"层级(最细粒度)
VAR _isfilter_brandinfo =
( ISFILTERED ( Dim_PackInfo[PROD_COD] )
|| ISFILTERED ( Dim_PackInfo[PROD_CORP] )
|| ISFILTERED ( Dim_PackInfo[PROD_CORP_C] )
|| ISFILTERED ( Dim_PackInfo[PROD_DES] )
|| ISFILTERED ( Dim_PackInfo[PROD_DES_C] ) )
VAR _isfilter_not_packinfo_only_brand =
NOT isfilter_packinfo && _isfilter_brandinfo
-- 是否过滤到"品牌/产品"层级
VAR _isfilter_not_packinfo_only_mole =
NOT isfilter_packinfo && NOT _isfilter_brandinfo
&& ( ISFILTERED ( Dim_PackInfo[MOLECULE_CODE_DESC] )
ISFILTERED ( Dim_PackInfo[MOLECULE_CODE_DESC] )
|| ISFILTERED ( Dim_PackInfo[MOLECULE_DES_C] )
|| ISFILTERED ( Dim_PackInfo[CMPS_COD] )
|| ISFILTERED ( Dim_PackInfo[CMPS_DES] )
|| ISFILTERED ( Dim_PackInfo[CMPS_DES_C] ) )
|| ISFILTERED ( Dim_PackInfo[CMPS_DES_C] )
-- 仅分子/成分层级过滤(未细化到品牌/包装)→ 使用 CMPS_FLAG
RETURN
SWITCH (
TRUE ( ),
//全局藏数据没有选market
// ── 全局屏蔽规则:未选 Market 时,部分场景隐藏数据 ──────────────────
NOT _isfilter_market && ISFILTERED ( Dim_Org ),
-- 无市场过滤 + 有组织过滤:仅 AIA 数据源可见,其余隐藏
IF ( DS = "AIA", [External.Sales.LY.MTH] ),
NOT _isfilter_market
&& ( ISFILTERED ( Dim_HP_Potential_AIA )
|| ISFILTERED ( Dim_CoreDept ) ),
-- 无市场过滤 + 存在医院潜力/核心科室过滤:强制返回空白
BLANK ( ),
// ── Retail 数据源:省级下钻时按产品粒度标志位过滤重复计数 ────────────
DS = "Retail",
SWITCH (
TRUE ( ),
// 隐藏HTN Market 和 Respules Market
_isfilter_province && MKT_FLAG = 2, BLANK ( ),
// 选择月份和地理
_isfilter_province && MKT_FLAG = 0
&& OR ( period_flag, AND ( NOT period_flag, NOT mm_flag ) ),
BLANK ( ),
//若选择Molecule,选择地理,且市场是品牌报告里面的市场
MKT_FLAG = 1 && _isfilter_not_packinfo_only_mole, [External.Sales.LY.MTH],
//除开特定市场外其余的retail针对于class选择地理或org维度值为空
_isfilter_province && ISFILTERED ( Dim_Class )
&& _isfilter_market
&& MKT_FLAG = 0,
BLANK ( ),
//选择市场,只出现品牌报告里面的有市场;
_isfilter_province && _isfilter_market && PROD_FLAG = 0,
BLANK ( ),
//若不选pack用于计算class相关KPI
_isfilter_province && NOT ISFILTERED ( Dim_PackInfo ), [External.Sales.LY.MTH],
//若选择Molecule,没选择地理
NOT _isfilter_province && _isfilter_not_packinfo_only_mole, [External.Sales.LY.MTH],
//若选择Molecule,选择地理
_isfilter_province && _isfilter_not_packinfo_only_mole,
CALCULATE ( [External.Sales.LY.MTH], Fact_Sales[CMPS_FLAG] = 1 ),
//若选择BRAND,没有选择地理
NOT _isfilter_province && _isfilter_not_packinfo_only_brand,
CALCULATE (
[External.Sales.LY.MTH],
Fact_Sales[PROD_FLAG] IN { 1, 2 }
_isfilter_province,
SWITCH (
TRUE ( ),
isfilter_packinfo,
CALCULATE (
[External.Sales.LY.MTH],
KEEPFILTERS ( Fact_Sales[PACK_FLAG] = 1 )
),
_isfilter_brandinfo,
CALCULATE (
[External.Sales.LY.MTH],
KEEPFILTERS ( Fact_Sales[PROD_FLAG] = 1 )
),
_isfilter_not_packinfo_only_mole,
CALCULATE (
[External.Sales.LY.MTH],
KEEPFILTERS ( Fact_Sales[CMPS_FLAG] = 1 )
),
[External.Sales.LY.MTH]
),
//若选择BRAND,选择地理
_isfilter_province && _isfilter_not_packinfo_only_brand,
CALCULATE ( [External.Sales.LY.MTH], Fact_Sales[GEO_FLAG] = 1 ),
//若选择PACKAGE,不选择地理维度1表示pack+省份数据2表示pack+全国的数据
NOT _isfilter_province && isfilter_packinfo,
CALCULATE (
[External.Sales.LY.MTH],
Fact_Sales[PACK_FLAG] IN { 1, 2 }
NOT _isfilter_province,
SWITCH (
TRUE ( ),
isfilter_packinfo,
CALCULATE (
[External.Sales.LY.MTH],
TREATAS ( { 1, 2 }, Fact_Sales[PACK_FLAG] )
),
_isfilter_brandinfo,
CALCULATE (
[External.Sales.LY.MTH],
TREATAS ( { 1, 2 }, Fact_Sales[PROD_FLAG] )
),
_isfilter_not_packinfo_only_mole,
CALCULATE (
[External.Sales.LY.MTH],
TREATAS ( { 1, 0 }, Fact_Sales[CMPS_FLAG] )
),
[External.Sales.LY.MTH]
),
//若选择PACKAGE,且省份维度不是全国
_isfilter_province && isfilter_packinfo,
CALCULATE ( [External.Sales.LY.MTH], Fact_Sales[PACK_FLAG] = 1 ),
[External.Sales.LY.MTH]
),
// ── DTP 数据源:有省份过滤时排除季度审计来源,避免月度/季度混用 ─────
MGDS = "DTP",
SWITCH (
TRUE ( ),
@@ -4605,11 +4513,14 @@ table 00_KPI
CALCULATE (
[External.Sales.LY.MTH],
KEEPFILTERS (
Dim_GeoKey[AUDIT_SOURCE] <> "ROCDTP(Quarterly)"
Fact_Sales[AUDIT_SOURCE] <> "ROCDTP(Quarterly)"
)
-- 省级下钻时剔除季度 DTP 数据,保证口径一致
),
[External.Sales.LY.MTH]
),
// ── CHPA 数据源:有省份过滤时排除 IQVIA-CHPA 月度来源,避免双计 ─────
DS = "CHPA" || MGDS = "CHPA",
SWITCH (
TRUE ( ),
@@ -4617,29 +4528,26 @@ table 00_KPI
CALCULATE (
[External.Sales.LY.MTH],
KEEPFILTERS (
Dim_GeoKey[AUDIT_SOURCE] <> "ROCIQVIA-CHPA(Monthly)"
Fact_Sales[AUDIT_SOURCE] <> "ROCIQVIA-CHPA(Monthly)"
)
-- 省级下钻时剔除 IQVIA-CHPA 月度数据,防止与其他来源重复
),
[External.Sales.LY.MTH]
),
// ── 默认兜底:其余数据源直接返回月度销售额 ────────────────────────────
[External.Sales.LY.MTH]
)
/*---------------------------------KPI描述------------------------------------
------创建者zhouxin
------邮箱kmls393@astrazeneca.net
------KPI名字PDOT
------KPI公式1、若TA是ONCO且是Retail需要取DTP_FLAG为1的数据
2、若选择PACKAGE且外部渠道是Retail,不选择地理维度展示PACK_FLAG是1和2的数据(1pack+省份数据2pack+全国的数据);
3、若选择PACKAGE且外部渠道是Retail,且选择了具体的某个省份非全国展示PACK_FLAG是1的数据
4、若选择PROD且外部渠道是Retail,展示Prod_FLAG是1的数据
5、若选择地理维度且外部渠道是Retail,展示PACK_FLAG是1和2的数据
6、其余渠道取原来的PDOT kpi。
------备注1、DTP的数据不参与retail总计计算其余外部渠道数据默认是0
2、1pack+省份数据意思是提供的原始数据就是Pack+省份的数据2pack+全国的数据意思是提供的原始数据是pack+全国数据只是因为倒减在底表中显示的是pack+省份。
------创建时间2024.5.15
------修改时间2024.6.10
------修改内容添加Retail的特殊逻辑处理
----------------------------------------------------------------------------*/
/*
入口
├─ 无 Market 过滤
│ ├─ 有 Org 过滤 → 仅 AIA 可见,其余 BLANK
│ └─ 有潜力/科室过滤 → 强制 BLANK
├─ DS = Retail → 按省份 + 产品粒度Pack > Brand > Mole匹配 FLAG
├─ MGDS = DTP → 省级下钻时剔除季度来源
├─ DS/MGDS = CHPA → 省级下钻时剔除 IQVIA 月度来源
└─ 其余 → 直接返回 [External.Sales.LY.MTH]
*/
displayFolder: 01Normal\05
lineageTag: e119ab9f-2f37-46b1-abef-61d9588519fc
@@ -4745,6 +4653,154 @@ table 00_KPI
displayFolder: 03Overview\00Base
lineageTag: 813775a4-380a-4f64-b5dc-f98ddd46b289
measure '01.DirectEC.Fact_EC_Total.Sales.AZ' =
VAR _isfitler_platform = ISFILTERED ( Dim_Platform[PLATFORM] )
VAR _isfitler_store = ISFILTERED ( Dim_StoreType[STORE] )
RETURN
SWITCH (
TRUE ( ),
_isfitler_platform || _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL] ),
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
),
NOT _isfitler_platform && _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL] ),
REMOVEFILTERS ( Dim_Platform ),
Fact_EC_Total[PLATFORM] = "B2C全平台京东+天猫)",
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
),
_isfitler_platform && NOT _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL] ),
REMOVEFILTERS ( Dim_StoreType ),
Fact_EC_Total[STORE_TYPE] = "自营+三方",
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
),
NOT _isfitler_platform && NOT _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL] ),
REMOVEFILTERS ( Dim_Platform ),
REMOVEFILTERS ( Dim_StoreType ),
Fact_EC_Total[PLATFORM] = "B2C全平台京东+天猫)",
Fact_EC_Total[STORE_TYPE] = "自营+三方",
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
)
)
displayFolder: 03Overview\01
lineageTag: e103a4b2-7888-407f-9a43-f4834ee70bf0
measure '01.DirectEC.Fact_EC_Total.Sales.AZ.LY' =
VAR _isfitler_platform = ISFILTERED ( Dim_Platform[PLATFORM] )
VAR _isfitler_store = ISFILTERED ( Dim_StoreType[STORE] )
RETURN
SWITCH (
TRUE ( ),
_isfitler_platform || _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL_LY] ),
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
),
NOT _isfitler_platform && _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL_LY] ),
REMOVEFILTERS ( Dim_Platform ),
Fact_EC_Total[PLATFORM] = "B2C全平台京东+天猫)",
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
),
_isfitler_platform && NOT _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL_LY] ),
REMOVEFILTERS ( Dim_StoreType ),
Fact_EC_Total[STORE_TYPE] = "自营+三方",
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
),
NOT _isfitler_platform && NOT _isfitler_store,
CALCULATE (
SUM ( Fact_EC_Total[KPI_VAL_LY] ),
REMOVEFILTERS ( Dim_Platform ),
REMOVEFILTERS ( Dim_StoreType ),
Fact_EC_Total[PLATFORM] = "B2C全平台京东+天猫)",
Fact_EC_Total[STORE_TYPE] = "自营+三方",
Fact_EC_Total[KPI_NAME] = "top_corp_sales",
Fact_EC_Total[TA] = ""
)
)
displayFolder: 03Overview\01
lineageTag: 25d41442-8c5a-4305-80c7-ba93e444bed5
measure '01.DirectEC.Fact_EC_Total.Rank.AZ' =
VAR _isfitler_platform = ISFILTERED ( Dim_Platform[PLATFORM] )
VAR _isfitler_store = ISFILTERED ( Dim_StoreType[STORE] )
RETURN
SWITCH (
TRUE ( ),
_isfitler_platform || _isfitler_store,
CALCULATE (
MIN ( Fact_EC_Total[KPI_VAL] ),
Fact_EC_Total[KPI_NAME] = "top_rank",
Fact_EC_Total[TA] = "",
MQY[Period] = "mth"
),
NOT _isfitler_platform && _isfitler_store,
CALCULATE (
MIN ( Fact_EC_Total[KPI_VAL] ),
REMOVEFILTERS ( Dim_Platform ),
Fact_EC_Total[PLATFORM] = "B2C全平台京东+天猫)",
Fact_EC_Total[KPI_NAME] = "top_rank",
Fact_EC_Total[TA] = "",
MQY[Period] = "mth"
),
_isfitler_platform && NOT _isfitler_store,
CALCULATE (
MIN ( Fact_EC_Total[KPI_VAL] ),
REMOVEFILTERS ( Dim_StoreType ),
Fact_EC_Total[STORE_TYPE] = "自营+三方",
Fact_EC_Total[KPI_NAME] = "top_rank",
Fact_EC_Total[TA] = "",
MQY[Period] = "mth"
),
NOT _isfitler_platform && NOT _isfitler_store,
CALCULATE (
MIN ( Fact_EC_Total[KPI_VAL] ),
REMOVEFILTERS ( Dim_Platform ),
REMOVEFILTERS ( Dim_StoreType ),
Fact_EC_Total[PLATFORM] = "B2C全平台京东+天猫)",
Fact_EC_Total[STORE_TYPE] = "自营+三方",
Fact_EC_Total[KPI_NAME] = "top_rank",
Fact_EC_Total[TA] = "",
MQY[Period] = "mth"
)
)
displayFolder: 03Overview\01
lineageTag: 185502ca-cf50-4945-8f09-fb60d15a42e4
measure '01.DirectEC.Fact_EC_Total.Sales.Total' =
CALCULATE (
[01.DirectEC.Fact_EC_Total.Sales.AZ],
REMOVEFILTERS ( Dim_Corp[CORP_DES] ),
Fact_EC_Total[CORP_COD] = ""
)
displayFolder: 03Overview\01
lineageTag: 7cb546d7-df8a-4363-b54f-3bf0422c4fa3
measure '01.DirectEC.Fact_EC_Total.Sales.Total.LY' =
CALCULATE (
[01.DirectEC.Fact_EC_Total.Sales.AZ.LY],
REMOVEFILTERS ( Dim_Corp[CORP_DES] ),
Fact_EC_Total[CORP_COD] = ""
)
displayFolder: 03Overview\01
lineageTag: 4d0de0a8-e3ea-4bc7-a16b-dac3b7af3d29
column KPI
dataType: string
isHidden

View File

@@ -234,7 +234,7 @@ table Dim_HP_Potential_AIA
Source
```
annotation PBI_ResultType = Exception
annotation PBI_ResultType = Table
annotation PBI_NavigationStepName = 导航

View File

@@ -166,11 +166,39 @@ table Fact_EC_Total
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT A.CORP_COD,TA,YYYYMM,YTD,KPI_NAME,TOTAL_FLAG,PLATFORM,STORE_TYPE,'EC(Monthly)' DATA_SOURCE,SUM(KPI_VAL) KPI_VAL,SUM(KPI_VAL_LY) KPI_VAL_LY,MAX(STR_KPI_VAL)
STR_KPI_VAL,MAX(STR_KPI_VAL_LY) STR_KPI_VAL_LY,MAX(STR_KPI_VOL) STR_KPI_VOL,MAX(STR_KPI_VOL_LY) STR_KPI_VOL_LY
FROM dm.dm_zk_ec_sales_kpi A
WHERE KPI_NAME = 'top_rank' AND A.CORP_COD = 'A5Z'
GROUP BY A.CORP_COD,TA,YYYYMM,YTD,KPI_NAME,TOTAL_FLAG,PLATFORM,STORE_TYPE"
"
SELECT
A.CORP_COD,
TA,
YYYYMM,
YTD,
KPI_NAME,
TOTAL_FLAG,
PLATFORM,
STORE_TYPE,
'EC(Monthly)' DATA_SOURCE,
SUM(KPI_VAL) KPI_VAL,
SUM(KPI_VAL_LY) KPI_VAL_LY,
MAX(STR_KPI_VAL) STR_KPI_VAL,
MAX(STR_KPI_VAL_LY) STR_KPI_VAL_LY,
MAX(STR_KPI_VOL) STR_KPI_VOL,
MAX(STR_KPI_VOL_LY) STR_KPI_VOL_LY
FROM
dm.dm_zk_ec_sales_kpi A
WHERE
KPI_NAME in ('top_rank','top_corp_sales')
AND A.CORP_COD IN( 'A5Z','') AND A.TA =''
GROUP BY
A.CORP_COD,
TA,
YYYYMM,
YTD,
KPI_NAME,
TOTAL_FLAG,
PLATFORM,
STORE_TYPE
"
& UsingLimit,
null,
[
@@ -181,7 +209,7 @@ table Fact_EC_Total
Source
```
annotation PBI_ResultType = Exception
annotation PBI_ResultType = Table
annotation PBI_NavigationStepName = Navigation