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