This commit is contained in:
2026-04-15 10:36:20 +08:00
parent 43527d6c98
commit f1903bf7bb
811 changed files with 46977 additions and 41706 deletions

View File

@@ -1,3 +1,3 @@
database
compatibilityLevel: 1606
compatibilityLevel: 1702

View File

@@ -150,3 +150,119 @@ expression Fact_Sales_SQL_limit =
annotation PBI_ResultType = Text
expression Config_MarketRatio = ```
let
Source =
Value.NativeQuery(
Databricks.Catalogs(
ServerAddress, HttpPath, [
Catalog = CatalogName,
Database = null,
EnableAutomaticProxyDiscovery = null,EnableQueryResultDownload="0"
]
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"
with all_pack_pack_property as (
select Market,Pack_cod,CMPS_COD from dm.dm_aia_pack_property group by 1,2,3
union
select Market,iqvia_pack_code,CMPS_COD from dm.dm_zk_ec_pack_property group by 1,2,3
union
select Market,PACK_COD,CMPS_COD from dm.dm_chc_pack_property group by 1,2,3
union
select Market,PACK_COD,CMPS_COD from dm.dm_thc_pack_property group by 1,2,3
union
select Market,PACK_COD,CMPS_COD from dm.dm_ext_county_td_pack_property group by 1,2,3
union
select Market,iqvia_pack_code,CMPS_COD from dm.dm_zk_retail_dtp_pack_property group by 1,2,3
union
select Market,iqvia_pack_code,CMPS_COD from dm.dm_zk_retail_pack_property group by 1,2,3
union
select Market,pack_cod,CMPS_COD from DWS.dws_ims_td_market_ratio group by 1,2,3)
,brand_ratio as (
SELECT distinct market,
CASE WHEN length(cmps_cod) < 6 THEN RIGHT(CONCAT('000000',cmps_cod),6) ELSE cmps_cod END AS cmps_cod,
cmps_des,
CASE WHEN length(pack_cod) < 12 and pack_cod REGEXP '^[0-9]' THEN RIGHT(CONCAT('000000000000',pack_cod),12) ELSE pack_cod END AS pack_cod,
pack_des,
level,
type,
ratio
from dwd.dwd_gnd_ims_tblBrandRatio
)
,match_data as(
select
t1.PACK_COD,
t1.MARKET
-- case when t6.ratio is not null then t1.market_ratio * t6.ratio
-- else t1.market_ratio * NVL(t7.ratio,1)
-- end as VALUE_MARKET_RATIO,
-- case when t2.ratio is not null then t1.market_ratio * t2.ratio
-- else t1.market_ratio * NVL(t3.ratio,1)
-- end as UNIT_MARKET_RATIO,
-- t1.market_ratio as COUNTINGUNIT_MARKET_RATIO,
-- case when t4.ratio is not null then t1.market_ratio * t4.ratio
-- else t1.market_ratio * NVL(t5.ratio,1)
-- end as PDOT_MARKET_RATIO
,case
when t6.PACK_COD is not null then t6.level
when t7.CMPS_COD is not null then t7.level else null end as brandratio_value_level
,case
when t2.PACK_COD is not null then t2.level
when t3.CMPS_COD is not null then t3.level else null end as brandratio_unit_level
,case
when t4.PACK_COD is not null then t4.level
when t5.CMPS_COD is not null then t5.level else null end as brandratio_countingunit_level
from all_pack_pack_property t1
--unit by Pack
left join (select * from brand_ratio where upper(type) = 'UNIT' and upper(Level) = 'PACK') t2
on t1.PACK_COD = t2.pack_cod
and t1.MARKET = t2.market
--unit by MOLECULE
left join (select * from brand_ratio where upper(type) = 'UNIT' and upper(Level) = 'MOLECULE') t3
on t1.CMPS_COD = t3.cmps_cod
and t1.MARKET = t3.market
--PDOT by Pack
left join (select * from brand_ratio where upper(type) = 'COUNTINGUNIT' and upper(Level) = 'PACK') t4
on t1.PACK_COD = t4.pack_cod
and t1.MARKET = t4.market
--PDOT by MOLECULE
left join (select * from brand_ratio where upper(type) = 'COUNTINGUNIT' and upper(Level) = 'MOLECULE') t5
on t1.CMPS_COD = t5.cmps_cod
and t1.MARKET = t5.market
--VALUE by Pack
left join (select * from brand_ratio where upper(type) = 'VALUE' and upper(Level) = 'PACK') t6
on t1.PACK_COD = t6.pack_cod
and t1.MARKET = t6.market
--VALUE by MOLECULE
left join (select * from brand_ratio where upper(type) = 'VALUE' and upper(Level) = 'MOLECULE') t7
on t1.CMPS_COD = t7.cmps_cod
and t1.MARKET = t7.market
)
select
MARKET
,PACK_COD
-- ,brandratio_value_level
-- ,brandratio_unit_level
,nvl(brandratio_countingunit_level,'Market') as brandratio_countingunit_level
from match_data
"
& UsingLimit,
null,
[
EnableFolding = true
]
)
in
Source
```
lineageTag: f3952339-ada3-47e3-8e8e-670264eff2ef
queryGroup: OLD
annotation PBI_NavigationStepName = Navigation
annotation PBI_ResultType = Table

View File

@@ -66,7 +66,7 @@ queryGroup Dim
annotation __PBI_TimeIntelligenceEnabled = 0
annotation PBI_QueryOrder = ["Measure THC","Dim_PackInfo_Retail","Dim_MergeDataSource","Fact_Retail_Brand","Fact_Retail_RawData","Fact_EC_Total","Fact_Retail","Config_ReportURL","refresh_time","Dim_BrandMKT","Dim_Market_Total","Dim_MarketTA_Total","Dim_BrandDefaultMKT","Dim_Calendar","Dim_Corp","Dim_DataSource","Dim_Geo","Dim_PlatformMID","Dim_StoreTypeMID","Dim_GeoGroup","Dim_Market","Dim_MarketTA","Dim_Org","Dim_PackInfo","Dim_Platform","Dim_StoreType","Dim_ExchangRate","DM_AUTH_ORG","DM_AUTH_PRD","DM_AUTH_SALES_GEO","DM_AUTH_SALES_MKT","DM_AUTH_SALES_PACK","DM_AUTH_SALES_ORG","DM_AUTH_GEO","HttpPath","CatalogName","ServerAddress","limit_validity","UsingLimit","limit","TOP","Dim_MKTPackMapping_Total","Dim_PackInfo_Total","Dim_RegionType","Fact_Sales_Total","Dim_Unit","dm_td_chpa_market_definition","Fact_Retail_Total","Fact_Sales_Total_AIA","Fact_EC","Dim_Class","Dim_HPFlag","Dim_HPFlag_AIASpecial","Dim_InsSalesType","Dim_InsSalesType_AIASpecial","Dim_IsTarget_AIASpecial","Dim_CoreDept","Dim_Dept","Dim_PrescriptionSource","Dim_Reimburse","Dim_ReimburseType","dm_auth_aia_sales_pack","dm_auth_aia_sales_geo","dm_auth_aia_sales_org","dm_auth_aia_sales_mkt","DM_AIA_TD_HOSPITAL_NOT_PROVIDED","Dim_Original_Col_AIA","Dim_HP_Potential_AIA","AIA.Measures","DM_AUTH_PRD_PACK","Fact_Retail_Special","AIA_AdvanceAnalysis_Brand","AIA_AdvanceAnalysis_Class","AIA_AdvanceAnalysis_Key_Competitor","AIA_AdvanceAnalysis_Mole","AIA_AdvanceAnalysis_Subchannel","AIA_AdvanceAnalysis_DRAGON","AIA_AdvanceAnalysis_Decile","AIA_AdvanceAnalysis_Decile_Group","Dim_IsEagle_AIASpecial","Dim_IsEagle_Bridge_AIASpecial","Dim_RC","Dim_Institution","DM_AUTH_SALES_TA","DM_AUTH_NONSALES_TA","DM_AUTH_MERGED_DATA","DM_AUTH_NONSALES_ORG","dm_td_user_permission_detail","Config_MarketRatio","Config_MergeData","Dim_RC_Merged_Data","Fact_Sales_SQL","Fact_Sales_SQL_limit","Fact_Sales","Fact_AIA_DataQuality","DM_AUTH_EMAIL_NOTIFICATION","Config_EmailWarning","Dim_Remove_inst","Config_PageFlag_FreeReportNIAD","Config_VisualFlag","Fact_Sales_THC","Fact_Sales_NIAD","00_KPI","Dim_KeyCompetitor","Dim_Store","Dim_HP_Level"]
annotation PBI_QueryOrder = ["Measure THC","Dim_PackInfo_Retail","Dim_MergeDataSource","Fact_Retail_Brand","Fact_Retail_RawData","Fact_EC_Total","Fact_Retail","Config_ReportURL","refresh_time","Dim_BrandMKT","Dim_Market_Total","Dim_MarketTA_Total","Dim_BrandDefaultMKT","Dim_Calendar","Dim_Corp","Dim_DataSource","Dim_Geo","Dim_PlatformMID","Dim_StoreTypeMID","Dim_GeoGroup","Dim_Market","Dim_MarketTA","Dim_Org","Dim_PackInfo","Dim_Platform","Dim_StoreType","Dim_ExchangRate","DM_AUTH_ORG","DM_AUTH_PRD","DM_AUTH_SALES_GEO","DM_AUTH_SALES_MKT","DM_AUTH_SALES_PACK","DM_AUTH_SALES_ORG","DM_AUTH_GEO","HttpPath","CatalogName","ServerAddress","limit_validity","UsingLimit","limit","TOP","Dim_PackInfo_Total","Dim_RegionType","Fact_Sales_SQL","Fact_Sales_SQL_limit","Fact_Sales_Total","Dim_Unit","dm_td_chpa_market_definition","Fact_Retail_Total","Fact_Sales_Total_AIA","Fact_EC","Dim_Class","Dim_HPFlag","Dim_HPFlag_AIASpecial","Dim_InsSalesType","Dim_InsSalesType_AIASpecial","Dim_IsTarget_AIASpecial","Dim_CoreDept","Dim_Dept","Dim_PrescriptionSource","Dim_Reimburse","Dim_ReimburseType","dm_auth_aia_sales_pack","dm_auth_aia_sales_geo","dm_auth_aia_sales_org","dm_auth_aia_sales_mkt","DM_AIA_TD_HOSPITAL_NOT_PROVIDED","Dim_Original_Col_AIA","Dim_HP_Potential_AIA","AIA.Measures","DM_AUTH_PRD_PACK","Fact_Retail_Special","AIA_AdvanceAnalysis_Brand","AIA_AdvanceAnalysis_Class","AIA_AdvanceAnalysis_Key_Competitor","AIA_AdvanceAnalysis_Mole","AIA_AdvanceAnalysis_Subchannel","AIA_AdvanceAnalysis_DRAGON","AIA_AdvanceAnalysis_Decile","AIA_AdvanceAnalysis_Decile_Group","Dim_IsEagle_AIASpecial","Dim_IsEagle_Bridge_AIASpecial","Dim_RC","Dim_Institution","DM_AUTH_SALES_TA","DM_AUTH_NONSALES_TA","DM_AUTH_MERGED_DATA","DM_AUTH_NONSALES_ORG","dm_td_user_permission_detail","Config_MarketRatio","Config_MergeData","Dim_RC_Merged_Data","Fact_Sales","Fact_AIA_DataQuality","DM_AUTH_EMAIL_NOTIFICATION","Config_EmailWarning","Dim_Remove_inst","Config_PageFlag_FreeReportNIAD","Config_VisualFlag","Fact_Sales_THC","Fact_Sales_NIAD","00_KPI","Dim_KeyCompetitor","Dim_Store","Dim_HP_Level"]
annotation __TEdtr = 1
@@ -94,7 +94,6 @@ ref table Option_IMSRankedBy
ref table Fields_TopPlayer
ref table 'Fields.Rows'
ref table 'Measures Val'
ref table Dim_MKTPackMapping_Total
ref table Fact_Sales
ref table Fields_Leader
ref table 'MarketGeo Val'
@@ -209,7 +208,6 @@ ref table Retail_Price_MQ_Fields
ref table Fact_Retail_Special
ref table Fields_TopPlayer_EN
ref table Fields_Leader_EN
ref table Config_MarketRatio
ref table AIA_Calgroup
ref table MA_Calgroup
ref table Config_MergeData

View File

@@ -21,10 +21,6 @@ relationship 6f5cdccf-156c-3665-3355-19fd0e2ec250
fromColumn: Dim_Market.MKT_SOURCE
toColumn: Dim_BrandDefaultMKT.MKT_SOURCE
relationship dbeea317-9fd2-18d5-e740-070e4833895d
fromColumn: Dim_MKTPackMapping_Total.MKT_SOURCE
toColumn: Dim_Market_Total.MKT_SOURCE
relationship a1493a4b-3001-a31c-bce3-b1acff1158b0
fromColumn: Fact_Retail.DATE_KEY
toColumn: Dim_Calendar.DATE
@@ -69,15 +65,6 @@ relationship d74215e9-ff50-e8c5-7997-37eb9c9a9c03
fromColumn: Fact_Retail.PACK_SOURCE
toColumn: Dim_PackInfo.PACK_SOURCE
relationship b53a29c7-a806-c5d2-6f74-ea23f8fd8f4f
crossFilteringBehavior: bothDirections
fromColumn: Dim_MKTPackMapping_Total.PACK_SOURCE
toColumn: Dim_PackInfo_Total.PACK_SOURCE
relationship 1dd39926-1ad7-4fed-a2db-c0ce25178820
fromColumn: Fact_Sales_Total.PACK_SOURCE
toColumn: Dim_PackInfo_Total.PACK_SOURCE
relationship 3260526a-a06a-0852-3e57-ab652f006059
crossFilteringBehavior: bothDirections
fromColumn: Dim_Platform.PLATFORM_TYPE_SOURCE
@@ -309,17 +296,8 @@ relationship a488d2d3-f82f-406d-5c4d-ac5fd735ebe3
fromColumn: Fact_Retail_Special.date_key
toColumn: Dim_Calendar.DATE
relationship 5e946534-fbb6-b624-2f17-1b10abbec781
fromColumn: Dim_Market_Total.DATA_SOURCE
toColumn: Dim_DataSource.DATA_SOURCE
relationship cf63b360-e29c-61e9-96e8-514fa6857dad
crossFilteringBehavior: bothDirections
toCardinality: many
fromColumn: Dim_Market_Total.MKT_SOURCE
toColumn: Dim_BrandMKT.MKT_SOURCE
relationship 73477bd1-8615-2d4f-4a3d-99b57f53e812
isActive: false
toCardinality: many
fromColumn: Dim_BrandMKT.IS_HIDDEN_COUNTY
toColumn: Dim_RegionType.IS_HIDDEN_COUNTY
@@ -343,10 +321,6 @@ relationship 775ab6f7-3e56-7455-134a-44689f127dab
fromColumn: Fact_AIA_DataQuality.audit_key
toColumn: Dim_Institution.INST_SOURCE
relationship 7a9c7b74-f496-b52e-8d2c-cdada0311f72
fromColumn: Dim_PackInfo_Total.CORP_COD
toColumn: Dim_Corp.CORP_COD
relationship 0157e28a-5680-2add-15a7-ad5719e92fad
crossFilteringBehavior: bothDirections
fromColumn: Dim_Remove_inst.AUDIT_KEY
@@ -485,3 +459,24 @@ relationship 54297790-f790-f0fc-7c36-c13537c5bd44
fromColumn: Fact_Sales_NIAD.CLASS_SOURCE
toColumn: Dim_Class.CLASS_SOURCE
relationship 912f0a3b-2696-05d9-cae3-d94ae481188e
fromColumn: Fact_Sales_Total.PACK_COD
toColumn: Dim_PackInfo_Total.PACK_COD
relationship bf10bd05-88ac-ba09-c413-de4d648072f7
fromColumn: Dim_PackInfo_Total.CORP_COD
toColumn: Dim_Corp.CORP_COD
relationship 96826175-42fa-bfcd-197a-cc94a2548539
fromColumn: Fact_Sales_Total.MKT_SOURCE
toColumn: Dim_Market_Total.MKT_SOURCE
relationship 7d97bb3a-3fdc-a38a-25a4-6d12e8f83118
fromColumn: Dim_BrandMKT.DATA_SOURCE
toColumn: Dim_DataSource.DATA_SOURCE
relationship f73ef8c7-2e1d-a9b9-c7d1-f65adf3bd159
toCardinality: many
fromColumn: Fact_Sales_Total.MKT_SOURCE
toColumn: Dim_BrandMKT.MKT_SOURCE

View File

@@ -11,7 +11,7 @@ table 'AIA.Measures'
ALL ( Dim_PackInfo ),
ALL ( Dim_Corp ),
ALL ( Dim_Class ),
ALL ( Dim_MKTPackMapping[KEY_COMPETITOR] )
ALL ( Dim_KeyCompetitor )
)
RETURN
IF( PV = BLANK()&& CV = BLANK() ,BLANK(),T)
@@ -108,137 +108,41 @@ table 'AIA.Measures'
lineageTag: 8c5bc845-b87f-4683-a00a-2fd70aaabd6f
measure 'External.Sales.KPI.Mol.AIA' =
--取消先选择市场的限定
IF (
[External.Sales.KPI.Market] <> 0 || [External.Sales.KPI.Market] <> BLANK(),
VAR MKT = MAX(Dim_Market[MKT_SOURCE])
VAR CMPS =
CALCULATETABLE(VALUES ( Dim_MKTPackMapping[MOLECULE_SOURCE] ),Dim_MKTPackMapping[MKT_SOURCE] = MKT)
RETURN
CALCULATE (
[External.Sales.KPI],
REMOVEFILTERS ( Dim_PackInfo[PROD_DES] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_DES_C] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_COD] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_COD] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_DES] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_DES_C] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_TYPE] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_CORP] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_CORP_C] ),
REMOVEFILTERS ( Dim_MKTPackMapping[KEY_COMPETITOR] ), --新增
ALL ( Dim_Corp ),
ALLEXCEPT (
Dim_PackInfo,
Dim_PackInfo[CMPS_DES],
Dim_PackInfo[CMPS_DES_C],
Dim_PackInfo[MOLECULE_CODE_DESC]
),
KEEPFILTERS ( Dim_Market[Market] <> BLANK () ),
TREATAS ( CMPS, Fact_Sales[MOLECULE_SOURCE] )
)
[External.Sales.KPI.Market] <> 0
|| [External.Sales.KPI.Market] <> BLANK ( ),
CALCULATE (
[External.Sales.KPI],
ALL ( Dim_Corp ),
ALLEXCEPT (
Dim_PackInfo,
Dim_PackInfo[CMPS_DES],
Dim_PackInfo[CMPS_DES_C],
Dim_PackInfo[MOLECULE_CODE_DESC]
),
KEEPFILTERS ( VALUES ( Dim_PackInfo[CMPS_DES] ) )
)
// IF (
// ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_MarketTA )
// || ISFILTERED ( Dim_BrandDefaultMKT ),
// IF (
// [External.Sales.KPI.Market] <> 0,
// VAR MKT = MAX(Dim_Market[MKT_SOURCE])
// VAR CMPS =
// CALCULATETABLE(VALUES ( Dim_MKTPackMapping[MOLECULE_SOURCE] ),Dim_MKTPackMapping[MKT_SOURCE] = MKT)
// RETURN
// CALCULATE (
// [External.Sales.KPI.AIA],
// REMOVEFILTERS ( Dim_PackInfo[PROD_DES] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_DES_C] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_COD] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_COD] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_DES] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_DES_C] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_TYPE] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_CORP] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_CORP_C] ),
// REMOVEFILTERS ( Dim_MKTPackMapping[KEY_COMPETITOR] ), --新增
// ALL ( Dim_Corp ),
// ALLEXCEPT (
// Dim_PackInfo,
// Dim_PackInfo[CMPS_DES],
// Dim_PackInfo[CMPS_DES_C],
// Dim_PackInfo[MOLECULE_CODE_DESC]
// ),
// KEEPFILTERS ( Dim_Market[Market] <> BLANK () ),
// TREATAS ( CMPS, Fact_Sales[MOLECULE_SOURCE] )
// )
// )
// )
)
formatString: #,0
displayFolder: 01.General\02.0.Basic\Sales
lineageTag: 30d3ba61-f719-4f50-8399-f7ece1b019c3
measure 'External.Sales.LY.KPI.Mol.AIA' =
--取消先选择市场的限定
IF (
[External.Sales.LY.KPI.Market] <> 0 || [External.Sales.LY.KPI.Market] <> BLANK(),
[External.Sales.LY.KPI.Market] <> 0
|| [External.Sales.LY.KPI.Market] <> BLANK ( ),
CALCULATE (
[External.Sales.LY.KPI.AIA],
REMOVEFILTERS ( Dim_PackInfo[PROD_DES] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_DES_C] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_COD] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_COD] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_DES] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_DES_C] ),
REMOVEFILTERS ( Dim_PackInfo[CORP_TYPE] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_CORP] ),
REMOVEFILTERS ( Dim_PackInfo[PROD_CORP_C] ),
//REMOVEFILTERS ( Dim_MKTPackMapping[KEY_COMPETITOR] ), --新增
ALL ( Dim_Corp ),
ALLEXCEPT (
Dim_PackInfo,
Dim_PackInfo[CMPS_DES],
Dim_PackInfo[CMPS_DES_C],
Dim_PackInfo[MOLECULE_CODE_DESC]
),
KEEPFILTERS ( Dim_Market[Market] <> BLANK () )
//),TREATAS ( CMPS, Fact_Sales[MOLECULE_SOURCE] )
)
[External.Sales.LY.KPI.AIA],
ALL ( Dim_Corp ),
ALLEXCEPT (
Dim_PackInfo,
Dim_PackInfo[CMPS_DES],
Dim_PackInfo[CMPS_DES_C],
Dim_PackInfo[MOLECULE_CODE_DESC]
),
KEEPFILTERS ( VALUES ( Dim_PackInfo[CMPS_DES] ) )
)
)
// IF (
// ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_MarketTA )
// || ISFILTERED ( Dim_BrandDefaultMKT ),
// IF (
// [External.Sales.LY.KPI.Market] <> 0,
// VAR MKT = MAX(Dim_Market[MKT_SOURCE])
// VAR CMPS =
// CALCULATETABLE(VALUES ( Dim_MKTPackMapping[MOLECULE_SOURCE] ),Dim_MKTPackMapping[MKT_SOURCE] = MKT)
// RETURN
// CALCULATE (
// [External.Sales.LY.KPI.AIA],
// REMOVEFILTERS ( Dim_PackInfo[PROD_DES] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_DES_C] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_COD] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_COD] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_DES] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_DES_C] ),
// REMOVEFILTERS ( Dim_PackInfo[CORP_TYPE] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_CORP] ),
// REMOVEFILTERS ( Dim_PackInfo[PROD_CORP_C] ),
// REMOVEFILTERS ( Dim_MKTPackMapping[KEY_COMPETITOR] ), --新增
// ALL ( Dim_Corp ),
// ALLEXCEPT (
// Dim_PackInfo,
// Dim_PackInfo[CMPS_DES],
// Dim_PackInfo[CMPS_DES_C],
// Dim_PackInfo[MOLECULE_CODE_DESC]
// ),
// KEEPFILTERS ( Dim_Market[Market] <> BLANK () ),
// TREATAS ( CMPS, Fact_Sales[MOLECULE_SOURCE] )
// )
// )
// )
formatString: #,0
displayFolder: 01.General\02.0.Basic\Sales
lineageTag: 1978fc8b-f600-48d3-bd19-262f8dbaa833
@@ -277,44 +181,16 @@ table 'AIA.Measures'
lineageTag: cfb7283b-4506-46fc-a45d-ed0e3ebdb53b
measure 'External.Sales.KPI.Class.AIA' =
IF (
[External.Sales.KPI.Market.AIA] <> 0 || [External.Sales.KPI.Market.AIA] <> BLANK(),
VAR MKT = MAX(Dim_Market[MKT_SOURCE])
VAR CLASS =
CALCULATETABLE(VALUES ( Dim_MKTPackMapping[CLASS_SOURCE] ),Dim_MKTPackMapping[MKT_SOURCE] = MKT)
RETURN
CALCULATE (
[External.Sales.KPI],
ALL ( Dim_PackInfo ),
ALL ( Dim_Corp ),
KEEPFILTERS (
Dim_Market[Market] <> BLANK ()
),
TREATAS ( CLASS, Dim_MKTPackMapping[CLASS_SOURCE] )
)
[External.Sales.KPI.Market.AIA] <> 0
|| [External.Sales.KPI.Market.AIA] <> BLANK ( ),
CALCULATE (
[External.Sales.KPI],
ALL ( Dim_PackInfo ),
ALL ( Dim_Corp ),
TREATAS ( VALUES ( Fact_Sales[CLASS] ), Dim_Class[CLASS] )
)
)
// IF (
// ISFILTERED ( Dim_MarketTA ) || ISFILTERED ( Dim_Market )
// || ISFILTERED ( Dim_BrandDefaultMKT ),
// IF (
// [External.Sales.KPI.Market.AIA] <> 0,
// VAR MKT = MAX(Dim_Market[MKT_SOURCE])
// VAR CLASS =
// CALCULATETABLE(VALUES ( Dim_MKTPackMapping[CLASS_SOURCE] ),Dim_MKTPackMapping[MKT_SOURCE] = MKT)
// RETURN
// CALCULATE (
// [External.Sales.KPI.AIA],
// ALL ( Dim_PackInfo ),
// ALL ( Dim_Corp ),
// KEEPFILTERS (
// Dim_Market[Market] <> BLANK ()
// ),
// TREATAS ( CLASS, Dim_MKTPackMapping[CLASS_SOURCE] )
// )
// )
// )
formatString: #,0
displayFolder: 01.General\02.0.Basic\Sales
lineageTag: 05eee0e4-19c7-49c4-801e-7c69f84cbe57
@@ -596,8 +472,8 @@ table 'AIA.Measures'
ALL ( Dim_HP_Potential_AIA ),
ORDERBY ( Dim_HP_Potential_AIA[POTENTIAL_VALUE], DESC )
),
Dim_HP_Potential_AIA[IS_DEFAULT_POTENTIAL_TYPE] = 1,
Dim_HP_Potential_AIA[IS_DEFAULT_POTENTIAL_MKT] = 1
Dim_HP_Potential_AIA[IS_DEFAULT_POTENTIAL_TYPE] = "1",
Dim_HP_Potential_AIA[IS_DEFAULT_POTENTIAL_MKT] = "1"
)
-----------------------------------------------------------------
-- DAX Code Comment Block --
@@ -1925,8 +1801,7 @@ table 'AIA.Measures'
"RMB", [AIATotal.Base.Value],
"Unit", [AIATotal.Base.Unit],
"CU", [AIATotal.Base.CountingUnit],
"PDOT", [AIATotal.Base.PDOT],
"张数", [AIATotal.Base.Prescription]
"PDOT", [AIATotal.Base.PDOT]
)
/*
单位转换
@@ -1940,8 +1815,7 @@ table 'AIA.Measures'
"RMB", [AIATotal.Base.Value.Ly],
"Unit", [AIATotal.Base.Unit.Ly],
"CU", [AIATotal.Base.CountingUnit.Ly],
"PDOT", [AIATotal.Base.PDOT.Ly],
"张数", [AIATotal.Base.Prescription.Ly]
"PDOT", [AIATotal.Base.PDOT.Ly]
)
/*
单位转换
@@ -2279,7 +2153,7 @@ table 'AIA.Measures'
RETURN
DIVIDE ( _c - _l, _l ),
KEEPFILTERS ( Dim_Market[MARKET] = _Com_Market ),
KEEPFILTERS ( Dim_MKTPackMapping[CLASS] = _Class )
KEEPFILTERS ( Dim_Class[CLASS] = _Class )
),
"Molecule",
CALCULATE (
@@ -2356,7 +2230,7 @@ table 'AIA.Measures'
DIVIDE (
CALCULATE (
[AIATotal.SwitchValueType],
KEEPFILTERS ( Dim_MKTPackMapping[CLASS] = _Class )
KEEPFILTERS ( Dim_Class[CLASS] = _Class )
),
[AIATotal.SwitchValueType]
),
@@ -2981,14 +2855,6 @@ table 'AIA.Measures'
measure 'MergedData.Text.SingleSelectWarning' = IF ( ISFILTERED ( dim_marketTa[ta] ), "TA/Marekt/Default Market只可选择一个" )
lineageTag: 007c55f3-9b0c-4291-aabc-8ad9321980d8
measure 111 = ```
SELECTEDVALUE ( Dim_DataSource[SOURCENAME] ) IN {"CHPA"}
&& ( ISFILTERED ( Dim_Geo ) || ISFILTERED ( Dim_Org ) )
```
lineageTag: a25769bd-15f8-4fdf-a3e6-7cf755b87267
annotation PBI_FormatHint = {"isGeneralNumber":true}
measure 'AIA.warning5.1' = ```
VAR _warning1 = ""//"拼DTP数据请先选择ONC相关市场TA=ONC或Market=EGFR-TKI、Imfinzi、Anti-HER2 mBC、MET-TKI、Soliris related Market"
@@ -3175,7 +3041,7 @@ table 'AIA.Measures'
CALCULATE(
SUMX(
'Fact_Sales_Total_AIA',
[CONUTING_UNIT] //* [External.SelectPDOTMKTRatio] * [External.SelectRegionMKTRatio]
Fact_Sales_Total_AIA[PDOT] //* [External.SelectPDOTMKTRatio] * [External.SelectRegionMKTRatio]
),
TREATAS( DISTINCT( Dim_Market[MARKET] ), Fact_Sales_Total_AIA[market] )
)
@@ -3193,7 +3059,7 @@ table 'AIA.Measures'
CALCULATE(
SUMX(
'Fact_Sales_Total_AIA',
[CONUTING_UNIT_ly] //* [External.SelectPDOTMKTRatio] * [External.SelectRegionMKTRatio]
Fact_Sales_Total_AIA[PDOT_LY] //* [External.SelectPDOTMKTRatio] * [External.SelectRegionMKTRatio]
),
TREATAS( DISTINCT( Dim_Market[MARKET] ), Fact_Sales_Total_AIA[market] )
)
@@ -3207,43 +3073,6 @@ table 'AIA.Measures'
annotation PBI_FormatHint = {"isGeneralNumber":true}
measure 'AIATotal.Base.Prescription' = ```
CALCULATE(
SUMX(
'Fact_Sales_Total_AIA',
[PRESCRIPTION]
),
TREATAS( DISTINCT( Dim_Market[MARKET] ), Fact_Sales_Total_AIA[market] )
)
/*
底层度量值
只适用AIA的Overview页面,默认使用market的筛选关系。
*/
```
displayFolder: 02.Page\02.1Overview\0.Base
lineageTag: 210874ef-0c24-48b8-812a-3b1b39ac150f
annotation PBI_FormatHint = {"isGeneralNumber":true}
measure 'AIATotal.Base.Prescription.Ly' = ```
CALCULATE(
SUMX(
'Fact_Sales_Total_AIA',
[PRESCRIPTION_ly]
),
TREATAS( DISTINCT( Dim_Market[MARKET] ), Fact_Sales_Total_AIA[market] )
)
/*
底层度量值
只适用AIA的Overview页面,默认使用market的筛选关系。
*/
```
displayFolder: 02.Page\02.1Overview\0.Base
lineageTag: 34513b6b-8113-4be6-b352-757f9d5722ee
annotation PBI_FormatHint = {"isGeneralNumber":true}
measure 'AIATotal.Base.Unit' = ```
CALCULATE(
SUMX(
@@ -3302,7 +3131,7 @@ table 'AIA.Measures'
CALCULATE(
SUMX(
Fact_Sales_Total_AIA,
[SALES_VALUE_CAL_ly] //* [External.SelectValueMKTRatio] * [External.SelectRegionMKTRatio]
[SALES_VALUE_CAL_ly]
),
TREATAS( DISTINCT( Dim_Market[MARKET] ), Fact_Sales_Total_AIA[market] )
)
@@ -3979,5 +3808,5 @@ table 'AIA.Measures'
annotation PBI_ResultType = Table
annotation TabularEditor_TableGroup = 01_ParameterField
annotation TabularEditor_TableGroup = 00_MeasureTable

View File

@@ -40,7 +40,7 @@ table AIA_AdvanceAnalysis_Decile_Group
annotation PBI_NavigationStepName = Navigation
annotation PBI_ResultType = Exception
annotation PBI_ResultType = Table
annotation TabularEditor_TableGroup = 08

View File

@@ -24,173 +24,88 @@ table AIA_Merge_Data
)
)
)
VAR _egfr_tj =
IF (
HASONEVALUE ( Dim_Market[MARKET] ),
IF (
VALUES ( Dim_Market[MARKET] ) = "EGFR TKI MARKET"
&& SELECTEDVALUE ( Dim_Geo[PROVINCE_C] ) = "天津",
TRUE ( )
)
)
RETURN
SWITCH (
TRUE ( ),
( ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_BrandDefaultMKT )
|| ISFILTERED ( Dim_MarketTA[TA] ) )
&& _egfr_tj,
// 选了 EGFR TKI MARKET
SWITCH (
TRUE ( ),
// 筛选city dtp不参与计算
( OR ( ISFILTERED ( Dim_Org ), ISFILTERED ( Dim_Geo ) )
|| _isfilter )
&& AND (
NOT ISFILTERED ( Dim_Market ),
SELECTEDVALUE ( Dim_MarketTA[TA] ) = "onco"
)
&& [IsMerge]
&& _isfilter_city,
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
,
KEEPFILTERS ( Fact_Sales[EGFR_FLAG] = 0 )
),
// 不筛选city dtp参与计算
( OR ( ISFILTERED ( Dim_Org ), ISFILTERED ( Dim_Geo ) )
|| _isfilter )
&& AND (
NOT ISFILTERED ( Dim_Market ),
SELECTEDVALUE ( Dim_MarketTA[TA] ) = "onco"
)
&& [IsMerge],
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ) // ,KEEPFILTERS( Fact_Sales[DTP_FLAG] <>1 )
,
KEEPFILTERS ( Fact_Sales[EGFR_FLAG] = 0 )
),
// 筛选city dtp不参与计算
( ISFILTERED ( Dim_Org ) || ISFILTERED ( Dim_Geo ) || _isfilter )
&& _isfilter_city,
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
,
KEEPFILTERS ( Fact_Sales[EGFR_FLAG] = 0 )
),
// 不筛选city dtp参与计算
( ISFILTERED ( Dim_Org ) || ISFILTERED ( Dim_Geo ) || _isfilter ),
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[EGFR_FLAG] = 0 )
),
// 筛选city dtp不参与计算
_isfilter_city,
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] ),
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
,
KEEPFILTERS ( Fact_Sales[EGFR_FLAG] = 0 )
),
// 不筛选city dtp参与计算
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] ),
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[EGFR_FLAG] = 0 )
)
),
ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_BrandDefaultMKT )
TRUE ( )
, ISFILTERED ( Dim_Market ) || ISFILTERED ( Dim_BrandDefaultMKT )
|| ISFILTERED ( Dim_MarketTA[TA] ),
CALCULATE (
SWITCH (
TRUE ( ),
SWITCH (
TRUE ( )
,
// 筛选city dtp不参与计算
( OR ( ISFILTERED ( Dim_Org ), ISFILTERED ( Dim_Geo ) )
|| _isfilter )
&& AND (
NOT ISFILTERED ( Dim_Market ),
SELECTEDVALUE ( Dim_MarketTA[TA] ) = "onco"
)
&& [IsMerge]
&& ( NOT [IsMerge] )
&& _isfilter_city,
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
),
SELECTEDMEASURE ( )
, KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
, KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
)
,
// 不筛选city dtp参与计算
( OR ( ISFILTERED ( Dim_Org ), ISFILTERED ( Dim_Geo ) )
|| _isfilter )
&& AND (
NOT ISFILTERED ( Dim_Market ),
SELECTEDVALUE ( Dim_MarketTA[TA] ) = "onco"
)
&& [IsMerge],
&& ( NOT [IsMerge] ),
CALCULATE (
SELECTEDMEASURE ( ),
KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ) // ,KEEPFILTERS( Fact_Sales[DTP_FLAG] <>1 )
),
SELECTEDMEASURE ( )
, KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
, KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 )
)
,
// 筛选city dtp不参与计算
( ISFILTERED ( Dim_Org ) || ISFILTERED ( Dim_Geo ) || _isfilter )
&& _isfilter_city,
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
),
SELECTEDMEASURE ( )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
, KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
)
,
// 不筛选city dtp参与计算
( ISFILTERED ( Dim_Org ) || ISFILTERED ( Dim_Geo ) || _isfilter ),
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] ),
Fact_Sales[MERGEDATA_FLAG_DTP_NOROC] = 1,
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" )
),
SELECTEDMEASURE ( )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_MKT] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
)
,
// 筛选city dtp不参与计算
_isfilter_city,
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] ),
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" ),
KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
),
SELECTEDMEASURE ( )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
, KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 ) // 筛选city dtp不参与计算
)
,
//不选dtp
NOT [IsMerge],
CALCULATE (
SELECTEDMEASURE ( )
, KEEPFILTERS ( Dim_MergeDataSource[DATA_SOURCE] <> "DTP" )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
, KEEPFILTERS ( Fact_Sales[DTP_FLAG] <> 1 )
)
,
// 不筛选city dtp参与计算
CALCULATE (
SELECTEDMEASURE ( ),
USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] ),
KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "2" )
SELECTEDMEASURE ( )
, USERELATIONSHIP ( Dim_MergeDataSource[DATA_SOURCE], Fact_Sales[MERGEDATA_FLAG_CHAP_DTP_NOAIA] )
, KEEPFILTERS ( Fact_Sales[MERGED_DATA_DTP_OTHERS] <> "3" )
)
),
KEEPFILTERS (
)
, KEEPFILTERS (
Dim_Market[MKT_SOURCE] <> "Amivantamab MarketDTP(Quarterly)"
),
KEEPFILTERS (
)
, KEEPFILTERS (
NOT Dim_Market[MARKET] IN
{
"RE Market",

View File

@@ -1,146 +0,0 @@
table Config_MarketRatio
lineageTag: 246bb2c8-ab30-4d25-a0d0-51951b46bb1a
column MARKET
dataType: string
lineageTag: d7619034-8051-4a7e-bdeb-fd680a4644b8
summarizeBy: none
sourceColumn: MARKET
annotation SummarizationSetBy = Automatic
column PACK_COD
dataType: string
lineageTag: 7e1f1f9c-ebe1-4050-8c12-8a0c50adf6ff
summarizeBy: none
sourceColumn: PACK_COD
annotation SummarizationSetBy = Automatic
column brandratio_countingunit_level
dataType: string
lineageTag: 4ab3d25d-feac-4e06-9a21-18891951a6b4
summarizeBy: none
sourceColumn: brandratio_countingunit_level
annotation SummarizationSetBy = Automatic
partition Config_MarketRatio = m
mode: import
queryGroup: OLD
source = ```
let
Source =
Value.NativeQuery(
Databricks.Catalogs(
ServerAddress, HttpPath, [
Catalog = CatalogName,
Database = null,
EnableAutomaticProxyDiscovery = null,EnableQueryResultDownload="0"
]
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"
with all_pack_pack_property as (
select Market,Pack_cod,CMPS_COD from dm.dm_aia_pack_property group by 1,2,3
union
select Market,iqvia_pack_code,CMPS_COD from dm.dm_zk_ec_pack_property group by 1,2,3
union
select Market,PACK_COD,CMPS_COD from dm.dm_chc_pack_property group by 1,2,3
union
select Market,PACK_COD,CMPS_COD from dm.dm_thc_pack_property group by 1,2,3
union
select Market,PACK_COD,CMPS_COD from dm.dm_ext_county_td_pack_property group by 1,2,3
union
select Market,iqvia_pack_code,CMPS_COD from dm.dm_zk_retail_dtp_pack_property group by 1,2,3
union
select Market,iqvia_pack_code,CMPS_COD from dm.dm_zk_retail_pack_property group by 1,2,3
union
select Market,pack_cod,CMPS_COD from DWS.dws_ims_td_market_ratio group by 1,2,3)
,brand_ratio as (
SELECT distinct market,
CASE WHEN length(cmps_cod) < 6 THEN RIGHT(CONCAT('000000',cmps_cod),6) ELSE cmps_cod END AS cmps_cod,
cmps_des,
CASE WHEN length(pack_cod) < 12 and pack_cod REGEXP '^[0-9]' THEN RIGHT(CONCAT('000000000000',pack_cod),12) ELSE pack_cod END AS pack_cod,
pack_des,
level,
type,
ratio
from dwd.dwd_gnd_ims_tblBrandRatio
)
,match_data as(
select
t1.PACK_COD,
t1.MARKET
-- case when t6.ratio is not null then t1.market_ratio * t6.ratio
-- else t1.market_ratio * NVL(t7.ratio,1)
-- end as VALUE_MARKET_RATIO,
-- case when t2.ratio is not null then t1.market_ratio * t2.ratio
-- else t1.market_ratio * NVL(t3.ratio,1)
-- end as UNIT_MARKET_RATIO,
-- t1.market_ratio as COUNTINGUNIT_MARKET_RATIO,
-- case when t4.ratio is not null then t1.market_ratio * t4.ratio
-- else t1.market_ratio * NVL(t5.ratio,1)
-- end as PDOT_MARKET_RATIO
,case
when t6.PACK_COD is not null then t6.level
when t7.CMPS_COD is not null then t7.level else null end as brandratio_value_level
,case
when t2.PACK_COD is not null then t2.level
when t3.CMPS_COD is not null then t3.level else null end as brandratio_unit_level
,case
when t4.PACK_COD is not null then t4.level
when t5.CMPS_COD is not null then t5.level else null end as brandratio_countingunit_level
from all_pack_pack_property t1
--unit by Pack
left join (select * from brand_ratio where upper(type) = 'UNIT' and upper(Level) = 'PACK') t2
on t1.PACK_COD = t2.pack_cod
and t1.MARKET = t2.market
--unit by MOLECULE
left join (select * from brand_ratio where upper(type) = 'UNIT' and upper(Level) = 'MOLECULE') t3
on t1.CMPS_COD = t3.cmps_cod
and t1.MARKET = t3.market
--PDOT by Pack
left join (select * from brand_ratio where upper(type) = 'COUNTINGUNIT' and upper(Level) = 'PACK') t4
on t1.PACK_COD = t4.pack_cod
and t1.MARKET = t4.market
--PDOT by MOLECULE
left join (select * from brand_ratio where upper(type) = 'COUNTINGUNIT' and upper(Level) = 'MOLECULE') t5
on t1.CMPS_COD = t5.cmps_cod
and t1.MARKET = t5.market
--VALUE by Pack
left join (select * from brand_ratio where upper(type) = 'VALUE' and upper(Level) = 'PACK') t6
on t1.PACK_COD = t6.pack_cod
and t1.MARKET = t6.market
--VALUE by MOLECULE
left join (select * from brand_ratio where upper(type) = 'VALUE' and upper(Level) = 'MOLECULE') t7
on t1.CMPS_COD = t7.cmps_cod
and t1.MARKET = t7.market
)
select
MARKET
,PACK_COD
-- ,brandratio_value_level
-- ,brandratio_unit_level
,nvl(brandratio_countingunit_level,'Market') as brandratio_countingunit_level
from match_data
"
& UsingLimit,
null,
[
EnableFolding = true
]
)
in
Source
```
annotation PBI_NavigationStepName = Navigation
annotation PBI_ResultType = Table
annotation TabularEditor_TableGroup = 03_ConfigTable

View File

@@ -23,7 +23,7 @@ table Config_VisualFlag
queryGroup: OLD
source =
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTLUM1SKjQUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Flag_ID = _t, Visual_Name = _t]),
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTLUA0KlWJ1oJSMozwjMMwbzIGwTMNtYKTYWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Flag_ID = _t, Visual_Name = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Flag_ID", Int64.Type}})
in
#"Changed Type"

View File

@@ -216,7 +216,7 @@ table Dim_BrandMKT
dataType: int64
formatString: 0
lineageTag: 8a2003c6-a56b-42e8-af70-f41f5e5908b3
summarizeBy: none
summarizeBy: sum
sourceColumn: IS_HIDDEN_COUNTY
annotation SummarizationSetBy = Automatic

View File

@@ -214,7 +214,7 @@ table Dim_Calendar
partition Dim_Calendar-59b630e2-4e38-43bf-981e-a88809964372 = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -266,9 +266,10 @@ table Dim_Calendar
EnableFolding = true
]
),
更改的类型 = Table.TransformColumnTypes(Source,{{"YYYYMM", type text}})
更改的类型 = Table.TransformColumnTypes(Source,{{"YYYYMM", type text}}),
#"Sorted Rows" = Table.Sort(更改的类型,{{"YEAR_FLAG", Order.Ascending}})
in
更改的类型
#"Sorted Rows"
```
changedProperty = IsHidden

View File

@@ -56,69 +56,30 @@ table Dim_Class
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT MARKET,
CASE
WHEN NVL(A.CLASS, '') = ''
OR A.CLASS = 'Others' THEN '-'
ELSE UPPER(A.CLASS)
END CLASS,
A.DATA_SOURCE,
NVL(PN.RN, 99) CLASS_RN
FROM
DM.DM_TD_EXTERNAL_MARKET_PACK_MAPPING A
LEFT JOIN (
SELECT
CLASS,
row_number() OVER(
PARTITION BY 1
ORDER BY
(
CASE
WHEN CLASS = '-' THEN 0
ELSE SALES_VALUE_CAL
END
) DESC
) RN
FROM
(
SELECT
UPPER(
CASE
WHEN NVL(CLASS, '') = ''
OR CLASS = 'Others' THEN '-'
ELSE UPPER(CLASS)
END
) CLASS,
SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL
FROM
DM.DM_TD_EXTERNAL_MARKET_PACK_MAPPING A
INNER JOIN DM.DM_TF_EXTERNAL_SALES B ON A.PACK_COD = B.PACK_COD
AND A.DATA_SOURCE = B.DATA_SOURCE
and a.new_code = b.new_code
WHERE
B.YYYYMM >= (
SELECT
LEFT(MAX(YYYYMM), 4) * 100 + 1
FROM
DM.DM_TF_EXTERNAL_SALES
WHERE
DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
)
AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
GROUP BY
CASE
WHEN NVL(CLASS, '') = ''
OR CLASS = 'Others' THEN '-'
ELSE UPPER(CLASS)
END
) T
) PN ON UPPER(
CASE
WHEN NVL(A.CLASS, '') = ''
OR A.CLASS = 'Others' THEN '-'
ELSE UPPER(A.CLASS)
END
) = PN.CLASS
"WITH class_sales AS (
-- 第一步:聚合,得到每个 class 的总销售额
SELECT
class,
SUM(SALES_VALUE_CAL) AS total_sales
FROM dm.dm_tf_ext_unionall_market_sales
WHERE DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
GROUP BY class
),
class_rn AS (
-- 第二步:按总销售额排序,生成行号
SELECT
class,
ROW_NUMBER() OVER (ORDER BY total_sales) AS rn
FROM class_sales
)
SELECT /*+ BROADCAST(R) */
L.MARKET,
L.CLASS,
L.DATASOURCE AS DATA_SOURCE,
COALESCE(R.rn, 99) AS CLASS_RN
FROM dm.dm_td_ext_unionall_market_pack_mapping L
LEFT JOIN class_rn R
ON L.CLASS = R.CLASS
"
& UsingLimit,
null,
@@ -130,7 +91,7 @@ table Dim_Class
Source
```
annotation PBI_ResultType = Exception
annotation PBI_ResultType = Table
annotation PBI_NavigationStepName = Navigation

View File

@@ -171,7 +171,7 @@ table Dim_Geo
partition Dim_Geo = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -186,77 +186,111 @@ table Dim_Geo
[Name = CatalogName, Kind = "Database"]
}[Data],
"
WITH external_geo AS (
SELECT
DISTINCT DATA_SOURCE,
AUDIT_COD,
REGION_TYPE,
PROVINCE_C,
CITY_C,
AZ_CITY_TIER,
PROV_RN,
CITY_RN,
PROVINCE_MAP,
COUNTY_NAME,
COUNTY_TIER,
PMT_REGION
FROM
WITH
-- 去重后的外部地理维度表
external_geo AS (
SELECT DISTINCT
DATA_SOURCE, -- 数据来源
AUDIT_COD, -- 审计编码
REGION_TYPE, -- 区域类型
PROVINCE_C, -- 省份(中文)
CITY_C, -- 城市(中文)
AZ_CITY_TIER, -- 城市等级
PROV_RN, -- 省份排序编号
CITY_RN, -- 城市排序编号
PROVINCE_MAP, -- 省份映射
COUNTY_NAME, -- 县/区名称
COUNTY_TIER, -- 县/区等级
PMT_REGION -- 大区
FROM
DM.DM_TD_EXTERNAL_GEO
),
province_en AS (
SELECT
province_name,
province_name_en
FROM
dm.dm_td_geography
WHERE
province_name <> ''
and province_name is not null
GROUP BY 1,2
),
city_en AS (
SELECT
city_name,
city_name_en
FROM
dm.dm_td_geography
WHERE
city_name <> ''
and city_name is not null
GROUP BY 1,2
)
),
-- 省份中→英映射(去重)
province_en AS (
SELECT DISTINCT
province_name, -- 省份中文名
province_name_en -- 省份英文名
FROM
DM.DM_TD_GEOGRAPHY
WHERE
province_name IS NOT NULL
AND province_name <> ''
),
-- 城市中→英映射(原始名称,用于精确匹配)
city_base AS (
SELECT DISTINCT
city_name, -- 城市中文名
city_name_en -- 城市英文名
FROM
DM.DM_TD_GEOGRAPHY
WHERE
city_name IS NOT NULL
AND city_name <> ''
),
-- 城市中→英映射(带'市'后缀,用于模糊匹配)
city_with_suffix AS (
SELECT DISTINCT
city_name, -- 城市中文名(含'市'后缀)
city_name_en -- 城市英文名
FROM
DM.DM_TD_GEOGRAPHY
WHERE
city_name IS NOT NULL
AND city_name <> ''
)
SELECT
a.DATA_SOURCE,
a.AUDIT_COD,
a.REGION_TYPE,
a.PROVINCE_C,
case
when a.PROVINCE_C = 'ROC' THEN 'ROC'
WHEN a.PROVINCE_C = '全国' then 'National'
ELSE prov.province_name_en
END as PROVINCE_EN,
nvl(city_shi.city_name,a.CITY_C) CITY_C,
nvl(city_shi.city_name,a.CITY_C) MERGED_DATA_CITY_C,
case
when a.CITY_C = 'ROC' THEN 'ROC'
WHEN a.CITY_C = '全国' then 'National'
WHEN a.CITY_C = '苏锡' THEN 'Suxichang'
WHEN a.PROVINCE_C = a.CITY_C then prov.province_name_en
WHEN city.city_name is null THEN city_shi.city_name_en
ELSE city.city_name_en
END as CITY_EN,
a.AZ_CITY_TIER,
a.PROV_RN,
a.CITY_RN,
a.PROVINCE_MAP,
a.COUNTY_NAME,
a.COUNTY_TIER,
a.PMT_REGION
a.DATA_SOURCE,
a.AUDIT_COD,
a.REGION_TYPE,
a.PROVINCE_C,
-- ========== 省份英文翻译 ==========
CASE
WHEN a.PROVINCE_C = 'ROC' THEN 'ROC'
WHEN a.PROVINCE_C = '全国' THEN 'National'
ELSE prov.province_name_en
END AS PROVINCE_EN,
-- ========== 城市中文(优先取地理表标准名) ==========
CASE
WHEN a.DATA_SOURCE <> 'AIA(Monthly)' and replace (a.CITY_C, '市', '') IN ('北京', '上海', '天津', '重庆') THEN a.CITY_C || '市'
ELSE a.CITY_C
END AS CITY_C,
CASE
WHEN a.DATA_SOURCE <> 'AIA(Monthly)' and REPLACE (a.CITY_C, '市', '') IN ('北京', '上海', '天津', '重庆') THEN a.CITY_C || '市'
ELSE a.CITY_C
END AS MERGED_DATA_CITY_C,
-- ========== 城市英文翻译 ==========
-- 条件按命中概率从高到低排列:
-- ① 特殊标记ROC / 全国)
-- ② 特殊区域缩写(苏锡 → Suxichang
-- ③ 省市同名(如'北京'既是省也是市,取省级翻译)
-- ④ 精确匹配命中
-- ⑤ 带'市'后缀模糊匹配命中
-- ⑥ 兜底:保留原始中文
CASE
WHEN a.CITY_C = 'ROC' THEN 'ROC'
WHEN a.CITY_C = '全国' THEN 'National'
WHEN a.CITY_C = '苏锡' THEN 'Suxichang'
WHEN a.PROVINCE_C = a.CITY_C THEN prov.province_name_en
WHEN base.city_name_en IS NOT NULL THEN base.city_name_en
WHEN sfx.city_name_en IS NOT NULL THEN sfx.city_name_en
ELSE a.CITY_C
END AS CITY_EN,
a.AZ_CITY_TIER,
a.PROV_RN,
a.CITY_RN,
a.PROVINCE_MAP,
a.COUNTY_NAME,
a.COUNTY_TIER,
a.PMT_REGION
FROM
external_geo a
LEFT JOIN province_en prov ON a.PROVINCE_C = prov.province_name
LEFT JOIN city_en city ON a.CITY_C = city.city_name
LEFT JOIN city_en city_shi on concat(a.CITY_C, '市') = city_shi.city_name
external_geo a
-- 省份精确关联
LEFT JOIN province_en prov ON a.PROVINCE_C = prov.province_name
-- 城市精确匹配(外部表.city = 地理表.city
LEFT JOIN city_base base ON a.CITY_C = base.city_name
-- 城市模糊匹配(外部表.city + '市' = 地理表.city
LEFT JOIN city_with_suffix sfx ON CONCAT (a.CITY_C, '市') = sfx.city_name
"
& UsingLimit,
null,

View File

@@ -23,9 +23,17 @@ table Dim_HPFlag
annotation SummarizationSetBy = Automatic
column HP_KEY
dataType: string
lineageTag: 0f3329e1-0534-4cf3-8c0b-74626f19d17a
summarizeBy: none
sourceColumn: HP_KEY
annotation SummarizationSetBy = Automatic
partition Dim_HPFlag = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -40,10 +48,23 @@ table Dim_HPFlag
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT NVL(B.AIA_HP_FLAG, '') AIA_HP_FLAG, A.DATA_SOURCE
FROM DM.DM_TF_EXTERNAL_SALES A
LEFT JOIN dm.dm_aia_hp_flag B
ON A.DATA_SOURCE = B.DATA_SOURCE AND A.inst_code = B.inst_code
SELECT DISTINCT
A.DATA_SOURCE,
B.AIA_HP_FLAG,
CASE
WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.AIA_HP_FLAG
ELSE ''
END HP_KEY
FROM
DM.dm_tf_ext_unionall_sales A
INNER JOIN (
SELECT DISTINCT
AIA_HP_FLAG
FROM
DM.dm_aia_hp_flag
WHERE
NVL(AIA_HP_FLAG, '') <> ''
) B
"
& UsingLimit,
null,

View File

@@ -33,7 +33,7 @@ table Dim_HPFlag_AIASpecial
partition Dim_HPFlag_AIASpecial = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -48,9 +48,23 @@ table Dim_HPFlag_AIASpecial
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT A.DATA_SOURCE,B.AIA_HP_FLAG ,CASE WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.AIA_HP_FLAG ELSE '' END HP_KEY
FROM DM.DM_TF_EXTERNAL_SALES A
INNER JOIN (SELECT DISTINCT AIA_HP_FLAG FROM DM.dm_aia_hp_flag WHERE NVL(AIA_HP_FLAG,'') <> '') B
SELECT DISTINCT
A.DATA_SOURCE,
B.AIA_HP_FLAG,
CASE
WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.AIA_HP_FLAG
ELSE ''
END HP_KEY
FROM
DM.dm_tf_ext_unionall_sales A
INNER JOIN (
SELECT DISTINCT
AIA_HP_FLAG
FROM
DM.dm_aia_hp_flag
WHERE
NVL(AIA_HP_FLAG, '') <> ''
) B
"
& UsingLimit,
null,

View File

@@ -40,7 +40,7 @@ table Dim_HP_Level
ROUND(A.H_LEVEL, 0) H_LEVEL,
A.DATA_SOURCE
FROM
DM.DM_TF_EXTERNAL_SALES A
DM.dm_tf_ext_unionall_sales A
" & UsingLimit,
null,
[EnableFolding = true]
@@ -51,7 +51,7 @@ table Dim_HP_Level
annotation PBI_NavigationStepName = Navigation
annotation PBI_ResultType = Table
annotation PBI_ResultType = Exception
annotation TabularEditor_TableGroup = 04_DimTable

View File

@@ -171,7 +171,7 @@ table Dim_HP_Potential_AIA
partition Dim_HP_Potential_AIA = m
mode: import
queryGroup: 'OLD\AIA 独有表'
queryGroup: Dim
source = ```
let
Source =
@@ -186,51 +186,42 @@ table Dim_HP_Potential_AIA
[Name = CatalogName, Kind = "Database"]
}[Data],
"
with external_sales as (
select distinct
t1.INST_CODE,
t2.market,
t1.DATA_SOURCE,
t1.AUDIT_COD
from dm.dm_tf_external_sales t1
left join dm.dm_td_external_market_pack_mapping t2
on t1.DATA_SOURCE = t2.DATA_SOURCE
and t1.PACK_COD = t2.PACK_COD
)
select distinct
t1.INST_CODE,
t1.MARKET,
t2.POTENTIAL_MKT_CODE,
t2.POTENTIAL_MKT_NAME,
t2.IS_DEFULT_POTENTIAL_MKT IS_DEFAULT_POTENTIAL_MKT,
t2.POTENTIAL_TYPE_CODE,
t2.POTENTIAL_TYPE_NAME,
t2.IS_DEFULT_POTENTIAL_TYPE IS_DEFAULT_POTENTIAL_TYPE,
t2.POTENTIAL_VALUE,
t2.DECILE_GROUP,
NVL(t2.DECILE_ORDER,99) as DECILE_ORDER,
t2.DECILE,
t1.DATA_SOURCE,
t1.AUDIT_COD,
NVL(t3.TARGET_INS_LEVEL,'') as TARGET_INS_LEVEL
from external_sales t1
left join dm.dm_td_aia_inst_mkt t2
with external_sales as (
select distinct
INST_CODE,
market,
DATA_SOURCE,
AUDIT_COD
from
dm.dm_tf_ext_unionall_market_sales
)
select
distinct
t1.INST_CODE,
t1.MARKET,
t2.POTENTIAL_MKT_CODE,
t2.POTENTIAL_MKT_NAME,
t2.IS_DEFULT_POTENTIAL_MKT IS_DEFAULT_POTENTIAL_MKT,
t2.POTENTIAL_TYPE_CODE,
t2.POTENTIAL_TYPE_NAME,
t2.IS_DEFULT_POTENTIAL_TYPE IS_DEFAULT_POTENTIAL_TYPE,
t2.POTENTIAL_VALUE,
t2.DECILE_GROUP,
NVL(t2.DECILE_ORDER, 99) as DECILE_ORDER,
t2.DECILE,
t1.DATA_SOURCE,
t1.AUDIT_COD,
NVL(t3.TARGET_INS_LEVEL, '') as TARGET_INS_LEVEL
from
external_sales t1
left join dm.dm_td_aia_inst_mkt t2
on t1.AUDIT_COD = t2.audit_cod
and t1.market = t2.market
and t1.DATA_SOURCE = t2.DATA_SOURCE
left join dm.dm_aia_targethp_flag t3
left join dm.dm_aia_targethp_flag t3
on t1.AUDIT_COD = t3.inst_code
and t1.market = t3.MARKET
and t1.DATA_SOURCE = t3.DATA_SOURCE
--SELECT DISTINCT A.INST_CODE, B.MARKET, POTENTIAL_MKT_CODE, POTENTIAL_MKT_NAME, IS_DEFULT_POTENTIAL_MKT,
-- POTENTIAL_TYPE_CODE, POTENTIAL_TYPE_NAME, IS_DEFULT_POTENTIAL_TYPE, POTENTIAL_VALUE,
-- DECILE_GROUP, NVL(DECILE_ORDER, 99) DECILE_ORDER, DECILE, A.DATA_SOURCE, B.AUDIT_COD, NVL(C.TARGET_INS_LEVEL, '') TARGET_INS_LEVEL, D.AIA_HP_FLAG
-- FROM DM.DM_TF_EXTERNAL_SALES A
-- LEFT JOIN dm.dm_td_aia_inst_mkt B ON A.inst_code = B.inst_code AND A.DATA_SOURCE = B.DATA_SOURCE
-- LEFT JOIN dm.dm_aia_targethp_flag C ON C.inst_code = B.inst_code AND C.DATA_SOURCE = B.DATA_SOURCE AND C.MARKET = B.MARKET
-- LEFT JOIN dm.dm_aia_hp_flag D ON A.inst_code = D.inst_code AND A.DATA_SOURCE = D.DATA_SOURCE
"
& UsingLimit,

View File

@@ -56,14 +56,14 @@ table Dim_InsSalesType
"
SELECT
DISTINCT
A.INST_CODE,
A.AUDIT_CODE as INST_CODE,
CASE WHEN A.DATA_SOURCE <>'AIA(Monthly)' THEN '-1' ELSE AIA_PROVIDED_FLAG END AIA_PROVIDED_FLAG,
A.DATA_SOURCE
FROM
DM.DM_TF_EXTERNAL_SALES A
DM.dm_tf_ext_unionall_sales A
LEFT JOIN dm.dm_aia_provided_flag B
ON A.DATA_SOURCE = B.DATA_SOURCE
AND A.INST_CODE = B.inst_code
AND A.AUDIT_CODE = B.inst_code
"
& UsingLimit,
null,

View File

@@ -48,9 +48,23 @@ table Dim_InsSalesType_AIASpecial
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT A.DATA_SOURCE,B.AIA_PROVIDED_FLAG ,CASE WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.AIA_PROVIDED_FLAG ELSE '' END PROVIDED_KEY
FROM DM.DM_TF_EXTERNAL_SALES A
INNER JOIN (SELECT DISTINCT aia_provided_flag FROM DM.dm_aia_provided_flag WHERE NVL(AIA_PROVIDED_FLAG,'') <> '') B
SELECT DISTINCT
A.DATA_SOURCE,
B.AIA_PROVIDED_FLAG,
CASE
WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.AIA_PROVIDED_FLAG
ELSE ''
END PROVIDED_KEY
FROM
DM.dm_tf_ext_unionall_sales A
INNER JOIN (
SELECT DISTINCT
aia_provided_flag
FROM
DM.dm_aia_provided_flag
WHERE
NVL(AIA_PROVIDED_FLAG, '') <> ''
) B
"
& UsingLimit,
null,

View File

@@ -57,7 +57,7 @@ table Dim_Institution
partition Dim_Institution = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -72,8 +72,17 @@ table Dim_Institution
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT A.DATA_SOURCE,A.INST_CODE,NVL(B.inst_name,'') INST_NAME,B.INST_TYPE, B.INST_SUB_TYPE, B.org_level_desc INS_LEVEL FROM dm.dm_tf_external_sales a
left join dm.dm_td_institution b on a.inst_code = b.inst_code
SELECT DISTINCT
A.DATA_SOURCE,
A.INST_CODE,
NVL(B.inst_name, '') INST_NAME,
B.INST_TYPE,
B.INST_SUB_TYPE,
B.org_level_desc INS_LEVEL
FROM
dm.dm_tf_ext_unionall_sales a
left join dm.dm_td_institution b
on a.inst_code = b.inst_code
"
& UsingLimit,
null,

View File

@@ -36,8 +36,8 @@ table Dim_IsEagle_AIASpecial
"
select
CONCAT(AUDIT_COD, MARKET, DATA_SOURCE) AS IS_EAGLE_FLAG_CODE,
CASE when MARKET = 'AIA ALL Market' and DATA_SOURCE = 'AIA(Monthly)' then ' ' --AIA ALL Market 不用挂eagle flag
WHEN is_eagle IN ('雾针等级医院','消化口服医院') THEN is_eagle
CASE when MARKET = 'ALL Market' and DATA_SOURCE = 'AIA(Monthly)' then ' ' --AIA ALL Market 不用挂eagle flag
WHEN is_eagle is not null THEN is_eagle
else ' ' END AS is_eagle
--is_eagle
FROM
@@ -57,7 +57,7 @@ table Dim_IsEagle_AIASpecial
annotation PBI_NavigationStepName = Navigation
annotation PBI_ResultType = Table
annotation PBI_ResultType = Exception
annotation TabularEditor_TableGroup = 04_DimTable

View File

@@ -48,9 +48,23 @@ table Dim_IsTarget_AIASpecial
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT A.DATA_SOURCE,B.IS_TARGET_HP ,CASE WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.IS_TARGET_HP ELSE '' END TARGET_KEY
FROM DM.DM_TF_EXTERNAL_SALES A
INNER JOIN (SELECT DISTINCT is_target_hp FROM DM.dm_aia_targethp_flag WHERE NVL(IS_TARGET_HP,'') <> '') B
SELECT DISTINCT
A.DATA_SOURCE,
B.IS_TARGET_HP,
CASE
WHEN A.DATA_SOURCE = 'AIA(Monthly)' THEN B.IS_TARGET_HP
ELSE ''
END TARGET_KEY
FROM
DM.dm_tf_ext_unionall_sales A
INNER JOIN (
SELECT DISTINCT
is_target_hp
FROM
DM.dm_aia_targethp_flag
WHERE
NVL(IS_TARGET_HP, '') <> ''
) B
"
& UsingLimit,
null,

View File

@@ -34,20 +34,21 @@ table Dim_KeyCompetitor
]
){[Name = CatalogName, Kind = "Database"]}[Data],
"
WITH
distinct_competitor (
SELECT DISTINCT
KEY_COMPETITOR
FROM
DM.DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING
WHERE KEY_COMPETITOR is NOT NULL
)
WITH distinct_competitor (
SELECT DISTINCT
upper(KEY_COMPETITOR) KEY_COMPETITOR
FROM
DM.DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING
WHERE
KEY_COMPETITOR is NOT NULL
)
SELECT
KEY_COMPETITOR,
NVL(MAX(t2.PROD_DESC_C), MAX(t1.KEY_COMPETITOR)) KEY_COMPETITOR_CN
FROM
distinct_competitor t1
LEFT JOIN DM.DM_TD_EXT_UNIONALL_PACKINFO t2 ON t1.KEY_COMPETITOR = t2.PROD_DESC
LEFT JOIN DM.DM_TD_EXT_UNIONALL_PACKINFO t2
ON upper(t1.KEY_COMPETITOR) = upper(t2.PROD_DESC)
GROUP BY
1
"

View File

@@ -1,151 +0,0 @@
table Dim_MKTPackMapping_Total
lineageTag: 9b1443ac-f3d1-463f-aab8-71d10b8163f3
column PACK_COD
dataType: string
lineageTag: 9fb40282-1f71-4aac-bb5f-b66e522ddbd6
summarizeBy: none
sourceColumn: PACK_COD
annotation SummarizationSetBy = Automatic
column PROD_DES
dataType: string
lineageTag: 482bb682-c003-430e-9499-947c52d3fa57
summarizeBy: none
sourceColumn: PROD_DES
annotation SummarizationSetBy = Automatic
column MARKET
dataType: string
lineageTag: 1fad37d6-80d8-4a0d-8517-b058f0705db4
summarizeBy: none
sourceColumn: MARKET
annotation SummarizationSetBy = Automatic
column VALUE_MARKET_RATIO
dataType: double
lineageTag: be70705e-e5c9-439f-a7be-922ae132ba92
summarizeBy: sum
sourceColumn: VALUE_MARKET_RATIO
annotation SummarizationSetBy = Automatic
annotation PBI_FormatHint = {"isGeneralNumber":true}
column UNIT_MARKET_RATIO
dataType: double
lineageTag: 0ad11eb4-4ee1-4335-b44f-fc5f8637f196
summarizeBy: sum
sourceColumn: UNIT_MARKET_RATIO
annotation SummarizationSetBy = Automatic
annotation PBI_FormatHint = {"isGeneralNumber":true}
column COUNTINGUNIT_MARKET_RATIO
dataType: double
lineageTag: f3795085-aadd-4b7e-933c-680f115c834f
summarizeBy: sum
sourceColumn: COUNTINGUNIT_MARKET_RATIO
annotation SummarizationSetBy = Automatic
annotation PBI_FormatHint = {"isGeneralNumber":true}
column MKT_PROD = [MARKET]&[PROD_DES]
lineageTag: be8033e8-62dd-4fe5-a0e2-95032ab7b827
summarizeBy: none
annotation SummarizationSetBy = Automatic
column CLASS
dataType: string
lineageTag: 9e0a4ed7-2972-4f1f-96fe-56a1b86c82c7
summarizeBy: none
sourceColumn: CLASS
annotation SummarizationSetBy = Automatic
column PROD_DES_C
dataType: string
lineageTag: 59e4ae4d-e4ca-4f73-9d16-f71c0090122e
summarizeBy: none
sourceColumn: PROD_DES_C
annotation SummarizationSetBy = Automatic
column DATA_SOURCE
dataType: string
lineageTag: 4be6209f-5ecc-42cb-b728-5ba5958f15de
summarizeBy: none
sourceColumn: DATA_SOURCE
annotation SummarizationSetBy = Automatic
column MKT_SOURCE = [MARKET] & [DATA_SOURCE]
lineageTag: f2e071d9-d686-461a-9830-caffd606a79c
summarizeBy: none
annotation SummarizationSetBy = Automatic
column PDOT_MARKET_RATIO
dataType: double
lineageTag: 0d60a930-4065-4337-be22-d8b63596da80
summarizeBy: sum
sourceColumn: PDOT_MARKET_RATIO
annotation SummarizationSetBy = Automatic
annotation PBI_FormatHint = {"isGeneralNumber":true}
column PACK_SOURCE = [PACK_COD] & [DATA_SOURCE]
lineageTag: 7b03092f-fcb6-4575-a506-d22037efb5bd
summarizeBy: none
annotation SummarizationSetBy = Automatic
partition Dim_MKTPackMapping_Total = m
mode: import
queryGroup: OLD\首页
source = ```
let
Source =
Value.NativeQuery(
Databricks.Catalogs(
ServerAddress, HttpPath, [
Catalog = CatalogName,
Database = null,
EnableAutomaticProxyDiscovery = null,EnableQueryResultDownload="0"
]
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT
DISTINCT PACK_COD,PROD_DES,PROD_DES_C,MARKET,CLASS
,CAST(VALUE_MARKET_RATIO AS DECIMAL(38,20)) VALUE_MARKET_RATIO
,CAST(UNIT_MARKET_RATIO AS DECIMAL(38,20)) UNIT_MARKET_RATIO
,case when DATA_SOURCE = 'EC(Monthly)' then 1 ELSE CAST(COUNTINGUNIT_MARKET_RATIO AS DECIMAL(38, 20)) END as COUNTINGUNIT_MARKET_RATIO
,CAST(PDOT_MARKET_RATIO AS DECIMAL(38,20)) PDOT_MARKET_RATIO,DATA_SOURCE
FROM DM.DM_TD_EXTERNAL_MARKET_PACK_MAPPING
"
& UsingLimit,
null,
[
EnableFolding = true
]
)
in
Source
```
annotation PBI_ResultType = Table
annotation PBI_NavigationStepName = Navigation
annotation TabularEditor_TableGroup = 04_DimTable

View File

@@ -14,7 +14,6 @@ table Dim_MarketTA
lineageTag: 3047c32e-71e6-42fa-a02e-993f5a460c49
summarizeBy: none
sourceColumn: TA
sortByColumn: TA_RN
changedProperty = SortByColumn

View File

@@ -14,7 +14,6 @@ table Dim_MarketTA_Total
lineageTag: dd0a146f-2af9-4b0b-adac-06d4616c733d
summarizeBy: none
sourceColumn: TA
sortByColumn: TA_RN
changedProperty = SortByColumn
@@ -59,7 +58,7 @@ table Dim_MarketTA_Total
partition Dim_MarketTA_Total = m
mode: import
queryGroup: OLD\首页
queryGroup: Dim
source = ```
let
Source =
@@ -73,9 +72,15 @@ table Dim_MarketTA_Total
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT MARKET,
CASE WHEN MARKET = 'Fasenra Market' AND DATA_SOURCE = 'Retail(Quarterly)' THEN NULL ELSE TA END AS TA
,TA_RN,MARKET_DESC,DATA_SOURCE FROM DM.DM_TD_EXTERNAL_MARKET_TA
"
SELECT DISTINCT
MARKET,
TA,
TA_RN,
MARKET_DESC,
DATA_SOURCE
FROM
dm.dm_td_ext_unionall_market_ta
"
& UsingLimit,
null,

View File

@@ -25,7 +25,7 @@ table Dim_Market_Total
partition Dim_Market_Total = m
mode: import
queryGroup: OLD\首页
queryGroup: Dim
source = ```
let
Source =
@@ -39,7 +39,15 @@ table Dim_Market_Total
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT MARKET,DATA_SOURCE FROM DM.DM_TD_EXTERNAL_MARKET"
"
SELECT DISTINCT
MARKET,
DATA_SOURCE
FROM
dm.dm_td_ext_unionall_market
where
MARKET <> 'ALL Market'
"
& UsingLimit,
null,
[

View File

@@ -3,15 +3,31 @@ table Dim_PackInfo_Total
column PACK_COD
dataType: string
lineageTag: 9323e255-439d-43d7-8bcc-e0899fab0f01
lineageTag: 51d27cee-ae92-407e-95ba-c213c5984953
summarizeBy: none
sourceColumn: PACK_COD
annotation SummarizationSetBy = Automatic
column PROD_COD
dataType: string
lineageTag: 4afe1097-2c68-4adb-b3de-baffdc15a19a
summarizeBy: none
sourceColumn: PROD_COD
annotation SummarizationSetBy = Automatic
column PROD_DES
dataType: string
lineageTag: 8b229ec4-91e6-4344-b5c6-2452d28d9f99
summarizeBy: none
sourceColumn: PROD_DES
annotation SummarizationSetBy = Automatic
column PROD_DES_C
dataType: string
lineageTag: c097148e-55ca-4597-a5ee-3142502af376
lineageTag: 51c41bf5-7651-4e9d-bd30-428e9d78f74d
summarizeBy: none
sourceColumn: PROD_DES_C
@@ -19,7 +35,7 @@ table Dim_PackInfo_Total
column CMPS_DES
dataType: string
lineageTag: d7694869-02b8-4733-93a6-aaca93dc73ad
lineageTag: fb9f9c15-c261-4e27-8719-2cf2b4fd377c
summarizeBy: none
sourceColumn: CMPS_DES
@@ -27,7 +43,7 @@ table Dim_PackInfo_Total
column CMPS_DES_C
dataType: string
lineageTag: 330a9441-8678-47aa-973e-c5102a3f8102
lineageTag: 80500c33-3a32-4fa7-8068-8072e88e2346
summarizeBy: none
sourceColumn: CMPS_DES_C
@@ -35,45 +51,15 @@ table Dim_PackInfo_Total
column CORP_COD
dataType: string
lineageTag: a77008b0-44ca-4761-9b7f-0d1c3c3184db
lineageTag: 1f5ec6ff-e5d2-4cac-9cfe-4e70c5ae1fc6
summarizeBy: none
sourceColumn: CORP_COD
annotation SummarizationSetBy = Automatic
column CORP_DES
dataType: string
lineageTag: 9cf44325-1c29-49cb-8e37-ea67bbaec653
summarizeBy: none
sourceColumn: CORP_DES
annotation SummarizationSetBy = Automatic
column PROD_DES
dataType: string
lineageTag: 33ecc8f4-4eed-4804-ac37-d913405ac8ff
summarizeBy: none
sourceColumn: PROD_DES
annotation SummarizationSetBy = Automatic
column DATA_SOURCE
dataType: string
lineageTag: ce1d238c-51e3-4839-81c1-491ef8b93747
summarizeBy: none
sourceColumn: DATA_SOURCE
annotation SummarizationSetBy = Automatic
column PACK_SOURCE = [PACK_COD] & [DATA_SOURCE]
lineageTag: 7920d032-e4d9-4440-97e1-afe0dd301efa
summarizeBy: none
annotation SummarizationSetBy = Automatic
partition Dim_PackInfo_Total = m
mode: import
queryGroup: OLD\首页
queryGroup: Dim
source = ```
let
Source =
@@ -87,9 +73,22 @@ table Dim_PackInfo_Total
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT PACK_COD,PROD_DES,PROD_DES_C,CMPS_DES,CMPS_DES_C,CORP_COD,CORP_DES,DATA_SOURCE
FROM DM.DM_TD_EXTERNAL_PACKINFO
"
SELECT
T1.PACK_COD,
MAX(T1.PROD_COD) AS PROD_COD,
MAX(T1.PROD_DES) AS PROD_DES,
MAX(T1.PROD_DES_C) AS PROD_DES_C,
MAX(T1.CMPS_DES) AS CMPS_DES,
MAX(T1.CMPS_DES_C) AS CMPS_DES_C,
MAX(T1.CORP_COD) AS CORP_COD
FROM
DM.dm_td_external_packinfo T1
WHERE
t1.PROD_COD IS NOT NULL
AND T1.PACK_COD IS NOT NULL
GROUP BY
T1.PACK_COD
"
& UsingLimit,
null,

View File

@@ -39,7 +39,7 @@ table Dim_Platform
partition Dim_Platform = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -53,10 +53,24 @@ table Dim_Platform
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT DATA_SOURCE,B.PLATFORM,CASE WHEN A.DATA_SOURCE = 'EC(Monthly)' THEN B.PLATFORM ELSE '' END PLATFORM_TYPE
FROM DM.DM_TF_EXTERNAL_SALES A
INNER JOIN (SELECT DISTINCT PLATFORM_TYPE PLATFORM FROM DM.DM_TF_EXTERNAL_SALES WHERE PLATFORM_TYPE <> '') B
WHERE YYYYMM >= (date_format(now(), 'yyyy')-3)*100+1 "
"
SELECT /*+ BROADCAST(B) */
A.DATA_SOURCE,
B.PLATFORM,
CASE
WHEN A.DATA_SOURCE = 'EC(Monthly)' THEN B.PLATFORM
ELSE ''
END AS PLATFORM_TYPE
FROM (
SELECT DISTINCT DATA_SOURCE
FROM DM.dm_tf_ext_unionall_sales
WHERE YYYYMM >= (year(current_date()) - 3) * 100 + 1 -- 过滤下推,减少扫描行数
) A
CROSS JOIN (
SELECT DISTINCT PLATFORM_TYPE AS PLATFORM
FROM DM.dm_tf_ext_unionall_sales
WHERE PLATFORM_TYPE <> ''
) B"
& UsingLimit,
null,
[

View File

@@ -25,7 +25,7 @@ table Dim_PlatformMID
partition Dim_PlatformMID = m
mode: import
queryGroup: OLD\EXTERNAL_辅助表
queryGroup: Dim
source = ```
let
Source =
@@ -39,9 +39,15 @@ table Dim_PlatformMID
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT PLATFORM_TYPE,DATA_SOURCE
FROM DM.DM_TF_EXTERNAL_SALES A
WHERE YYYYMM >= (date_format(now(), 'yyyy')-3)*100+1 "
"
SELECT DISTINCT
PLATFORM_TYPE,
DATA_SOURCE
FROM
DM.dm_tf_ext_unionall_sales A
WHERE
YYYYMM >= (date_format(now(), 'yyyy') - 3) * 100 + 1
"
& UsingLimit,
null,
[
@@ -52,7 +58,7 @@ table Dim_PlatformMID
Source
```
annotation PBI_ResultType = Exception
annotation PBI_ResultType = Table
annotation PBI_NavigationStepName = Navigation

View File

@@ -25,7 +25,7 @@ table Dim_PrescriptionSource
partition Dim_PrescriptionSource = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -40,7 +40,11 @@ table Dim_PrescriptionSource
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT A.PRESCRIPTION_SOURCE PRESCRIPTION_TYPE,A.DATA_SOURCE FROM DM.DM_TF_EXTERNAL_SALES A
SELECT DISTINCT
A.PRESCRIPTION_SOURCE PRESCRIPTION_TYPE,
A.DATA_SOURCE
FROM
DM.dm_tf_ext_unionall_sales A
"
& UsingLimit,
null,

View File

@@ -25,7 +25,7 @@ table Dim_Reimburse
partition Dim_Reimburse = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -40,10 +40,11 @@ table Dim_Reimburse
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT
trim(A.REIMBURSE) REIMBURSE
,A.DATA_SOURCE
FROM DM.DM_TF_EXTERNAL_SALES A
SELECT DISTINCT
trim(A.REIMBURSE) REIMBURSE,
A.DATA_SOURCE
FROM
DM.dm_tf_ext_unionall_sales A
"
& UsingLimit,
null,

View File

@@ -25,7 +25,7 @@ table Dim_ReimburseType
partition Dim_ReimburseType = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -40,7 +40,11 @@ table Dim_ReimburseType
[Name = CatalogName, Kind = "Database"]
}[Data],
"
SELECT DISTINCT A.REIMBURSE_TYPE,A.DATA_SOURCE FROM DM.DM_TF_EXTERNAL_SALES A
SELECT DISTINCT
A.REIMBURSE_TYPE,
A.DATA_SOURCE
FROM
DM.dm_tf_ext_unionall_sales A
"
& UsingLimit,
null,

View File

@@ -33,7 +33,7 @@ table Dim_StoreType
partition Dim_StoreType = m
mode: import
queryGroup: OLD\非首页
queryGroup: Dim
source = ```
let
Source =
@@ -47,10 +47,24 @@ table Dim_StoreType
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT DATA_SOURCE,B.STORE,CASE WHEN A.DATA_SOURCE = 'EC(Monthly)' THEN B.STORE ELSE '' END STORE_TYPE
FROM DM.DM_TF_EXTERNAL_SALES A
INNER JOIN (SELECT DISTINCT STORE_TYPE STORE FROM DM.DM_TF_EXTERNAL_SALES WHERE STORE_TYPE <> '') B
WHERE YYYYMM >= (date_format(now(), 'yyyy')-3)*100+1
"
SELECT /*+ BROADCAST(B) */
A.DATA_SOURCE,
B.STORE,
CASE
WHEN A.DATA_SOURCE = 'EC(Monthly)' THEN B.STORE
ELSE ''
END AS STORE_TYPE
FROM (
SELECT DISTINCT DATA_SOURCE
FROM DM.dm_tf_ext_unionall_sales
WHERE YYYYMM >= (year(current_date()) - 3) * 100 + 1
) A
CROSS JOIN (
SELECT DISTINCT STORE_TYPE AS STORE
FROM DM.dm_tf_ext_unionall_sales
WHERE STORE_TYPE <> ''
) B
"
& UsingLimit,
null,

View File

@@ -25,7 +25,7 @@ table Dim_StoreTypeMID
partition Dim_StoreTypeMID = m
mode: import
queryGroup: OLD\EXTERNAL_辅助表
queryGroup: Dim
source = ```
let
Source =
@@ -39,9 +39,14 @@ table Dim_StoreTypeMID
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT DISTINCT STORE_TYPE,DATA_SOURCE
FROM DM.DM_TF_EXTERNAL_SALES A
WHERE YYYYMM >= (date_format(now(), 'yyyy')-3)*100+1
"
SELECT DISTINCT
STORE_TYPE,
DATA_SOURCE
FROM
DM.dm_tf_ext_unionall_sales A
WHERE
YYYYMM >= (date_format(now(), 'yyyy') - 3) * 100 + 1
"
& UsingLimit,
null,

View File

@@ -623,21 +623,21 @@ table Fact_Sales
PRESCRIPTION_LY,
---关联主键-----------------------------
TO_DATE(CONCAT(YYYYMM, '01'), 'yyyyMMdd') AS DATE_KEY,
CONCAT(MARKET,DATA_SOURCE) AS MARKET_KEY,
CONCAT(PACK_COD,DATA_SOURCE,'') AS PACK_SOURCE,
CONCAT(AUDIT_COD,DATA_SOURCE) AS AUDIT_SOURCE,
CONCAT(AUDIT_COD,DATA_SOURCE,'' ) AS AUDIT_KEY,
CONCAT(MARKET,CLASS,DATA_SOURCE) AS CLASS_KEY,
CONCAT(STORE_TYPE,DATA_SOURCE) AS STORE_TYPE_SOURCE,
CONCAT(STORE_TYPE,'-',PLATFORM_TYPE) AS STORE_PLATFORM,
CONCAT(REIMBURSE_TYPE,DATA_SOURCE) AS REIMBURSETYPE_SOURCE,
CONCAT(REIMBURSE,DATA_SOURCE) AS REIMBURSE_SOURCE,
CONCAT(PRESCRIPTION_TYPE,DATA_SOURCE) AS PRESCRIPTION_SOURCE,
CONCAT(PLATFORM_TYPE,DATA_SOURCE) AS PLATFORM_TYPE_SOURCE,
CONCAT(dept_name,DATA_SOURCE) AS DEPT_SOURCE,
CONCAT(INST_CODE,DATA_SOURCE) AS INST_SOURCE,
CONCAT(AIA_HP_FLAG,DATA_SOURCE) AS HP_SOURCE,
COALESCE(MARKET, '') || DATA_SOURCE AS MARKET_KEY,
COALESCE(PACK_COD, '') || DATA_SOURCE AS PACK_SOURCE,
COALESCE(AUDIT_COD, '') || DATA_SOURCE AS AUDIT_SOURCE,
COALESCE(AUDIT_COD, '') || DATA_SOURCE AS AUDIT_KEY,
COALESCE(MARKET, '') || COALESCE(CLASS, '') || DATA_SOURCE AS CLASS_KEY,
COALESCE(STORE_TYPE, '') || DATA_SOURCE AS STORE_TYPE_SOURCE,
COALESCE(STORE_TYPE, '') || '-' || COALESCE(PLATFORM_TYPE, '') AS STORE_PLATFORM,
COALESCE(REIMBURSE_TYPE, '') || DATA_SOURCE AS REIMBURSETYPE_SOURCE,
COALESCE(REIMBURSE, '') || DATA_SOURCE AS REIMBURSE_SOURCE,
COALESCE(PRESCRIPTION_TYPE, '') || DATA_SOURCE AS PRESCRIPTION_SOURCE,
COALESCE(PLATFORM_TYPE, '') || DATA_SOURCE AS PLATFORM_TYPE_SOURCE,
COALESCE(dept_name, '') || DATA_SOURCE AS DEPT_SOURCE,
COALESCE(AUDIT_COD, '') || DATA_SOURCE AS INST_SOURCE,
COALESCE(AIA_HP_FLAG, '') || DATA_SOURCE AS HP_SOURCE,
-------------------------------------
--Retail藏数逻辑标签------------------
PACK_FLAG,
@@ -675,7 +675,7 @@ table Fact_Sales
-------------------------------------
NULL AS CORP_COD
from
DM.DM_TF_EXT_UNIONALL_SALES_MAPPING
DM.DM_TF_EXT_UNIONALL_SALES_MAPPING
"& Fact_Sales_SQL_limit
& UsingLimit,
null,

View File

@@ -9,14 +9,6 @@ table Fact_Sales_Total
annotation SummarizationSetBy = Automatic
column PACK_COD
dataType: string
lineageTag: 72479113-006e-440e-96b4-516001d70b1f
summarizeBy: none
sourceColumn: PACK_COD
annotation SummarizationSetBy = Automatic
column SALES_UNIT_CAL
dataType: double
lineageTag: 9c702b06-b06e-453c-b013-744f8d03bec0
@@ -92,14 +84,6 @@ table Fact_Sales_Total
annotation SummarizationSetBy = Automatic
column CORP_COD
dataType: string
lineageTag: 584f06b1-5aa2-46cd-94e3-989336c635ca
summarizeBy: none
sourceColumn: CORP_COD
annotation SummarizationSetBy = Automatic
column REGION_TYPE
dataType: string
lineageTag: 7ce546d7-bfa2-45e4-bfa1-088d985553de
@@ -124,27 +108,12 @@ table Fact_Sales_Total
annotation SummarizationSetBy = Automatic
column DTP_FLAG
dataType: int64
formatString: 0
lineageTag: 587f4cf8-c7eb-40bd-888c-ac896333d998
summarizeBy: sum
sourceColumn: DTP_FLAG
annotation SummarizationSetBy = Automatic
column 'new store type' = SWITCH(Fact_Sales_Total[STORE_TYPE],"第三方","POP","品牌店","SO","平台店","SO","自营旗舰","SO",Fact_Sales_total[STORE_TYPE])
lineageTag: 50b3306b-98e1-4d6c-bce9-f64c50775d26
summarizeBy: none
annotation SummarizationSetBy = Automatic
column PACK_SOURCE = [PACK_COD] & [DATA_SOURCE]
lineageTag: 8fcd60be-ed1e-4060-973d-d6467dcf95e6
summarizeBy: none
annotation SummarizationSetBy = Automatic
column PLATFORM_TYPE_SOURCE = [PLATFORM_TYPE] & [DATA_SOURCE]
lineageTag: dd5a65dd-d9dd-403c-843c-19f7a4808a06
summarizeBy: none
@@ -157,9 +126,61 @@ table Fact_Sales_Total
annotation SummarizationSetBy = Automatic
column MARKET
dataType: string
lineageTag: aad64764-08c9-4de6-bec4-657b8db4179c
summarizeBy: none
sourceColumn: MARKET
annotation SummarizationSetBy = Automatic
column PACK_COD
dataType: string
lineageTag: c3627711-3949-45c3-8660-c21b1ffddf4f
summarizeBy: none
sourceColumn: PACK_COD
annotation SummarizationSetBy = Automatic
column PDOT
dataType: double
lineageTag: c5e28608-997c-417f-84b6-ed5735cc98f4
summarizeBy: sum
sourceColumn: PDOT
annotation SummarizationSetBy = Automatic
annotation PBI_FormatHint = {"isGeneralNumber":true}
column PDOT_LY
dataType: double
lineageTag: c1254912-c548-452e-b465-6136745edb4c
summarizeBy: sum
sourceColumn: PDOT_LY
annotation SummarizationSetBy = Automatic
annotation PBI_FormatHint = {"isGeneralNumber":true}
column MKT_SOURCE
dataType: string
lineageTag: 4ffdfaef-8975-441a-b36d-cb747964892c
summarizeBy: none
sourceColumn: MKT_SOURCE
annotation SummarizationSetBy = Automatic
column CLASS
dataType: string
lineageTag: 60b25ddc-8118-4cf5-890b-4497b6dc3bc8
summarizeBy: none
sourceColumn: CLASS
annotation SummarizationSetBy = Automatic
partition Fact_Sales_Total = m
mode: import
queryGroup: OLD\首页
queryGroup: Fact_Sales
source = ```
let
Source =
@@ -173,16 +194,40 @@ table Fact_Sales_Total
){
[Name = CatalogName, Kind = "Database"]
}[Data],
"SELECT YYYYMM,PACK_COD,CORP_COD,PLATFORM_TYPE,STORE_TYPE,REGION_TYPE,DATA_SOURCE,DTP_FLAG,
SUM(CASE WHEN SALES_UNIT_CAL = 0 THEN NULL ELSE CAST(SALES_UNIT_CAL AS DECIMAL(35,10)) END) SALES_UNIT_CAL,
SUM(CASE WHEN SALES_UNIT_CAL_LY = 0 THEN NULL ELSE CAST(SALES_UNIT_CAL_LY AS DECIMAL(35,10)) END) SALES_UNIT_CAL_LY,
SUM(CASE WHEN SALES_VALUE_CAL = 0 THEN NULL ELSE CAST(SALES_VALUE_CAL AS DECIMAL(35,10)) END) SALES_VALUE_CAL,
SUM(CASE WHEN SALES_VALUE_CAL_LY = 0 THEN NULL ELSE CAST(SALES_VALUE_CAL_LY AS DECIMAL(35,10)) END) SALES_VALUE_CAL_LY,
SUM(CASE WHEN CONUTING_UNIT = 0 THEN NULL ELSE CAST(CONUTING_UNIT AS DECIMAL(35,10)) END) CONUTING_UNIT,
SUM(CASE WHEN CONUTING_UNIT_LY = 0 THEN NULL ELSE CAST(CONUTING_UNIT_LY AS DECIMAL(35,10)) END) CONUTING_UNIT_LY
FROM DM.DM_TF_EXTERNAL_SALES A
WHERE YYYYMM >= (date_format(now(), 'yyyy')-3)*100+1
GROUP BY YYYYMM,PACK_COD,CORP_COD,PLATFORM_TYPE,STORE_TYPE,REGION_TYPE,DATA_SOURCE,DTP_FLAG "
"
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_market_sales A
WHERE
YYYYMM >= (YEAR(CURRENT_DATE()) - 3) * 100 + 1 -- 内联,消除 CROSS JOIN
AND DATA_SOURCE <> 'XH Data(Quarterly)'
GROUP BY
A.YYYYMM,
A.MARKET,
A.CLASS,
A.PACK_COD,
A.PLATFORM_TYPE,
A.STORE_TYPE,
A.REGION_TYPE,
A.DATA_SOURCE
"
& UsingLimit,
null,
[

View File

@@ -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 JOINAIA_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,