0415
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
createOrReplace
|
||||
|
||||
table Dim_MarketTA_Total
|
||||
lineageTag: 9828a88e-525f-44ef-8342-ff83d4d771d8
|
||||
|
||||
column MARKET
|
||||
dataType: string
|
||||
lineageTag: 115c4441-f12d-4312-b5e6-4c40e32dc55f
|
||||
summarizeBy: none
|
||||
sourceColumn: MARKET
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column TA
|
||||
dataType: string
|
||||
lineageTag: dd0a146f-2af9-4b0b-adac-06d4616c733d
|
||||
summarizeBy: none
|
||||
sourceColumn: TA
|
||||
sortByColumn: TA_RN
|
||||
|
||||
changedProperty = SortByColumn
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column TA_RN
|
||||
dataType: int64
|
||||
formatString: 0
|
||||
lineageTag: 4573c194-9e45-4e33-9622-afa5083766e8
|
||||
summarizeBy: sum
|
||||
sourceColumn: TA_RN
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column DATA_SOURCE
|
||||
dataType: string
|
||||
lineageTag: be443384-9a16-4578-bd7a-fb950c6d4309
|
||||
summarizeBy: none
|
||||
sourceColumn: DATA_SOURCE
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column MKT_SOURCE = [MARKET] & [DATA_SOURCE]
|
||||
lineageTag: e1aa3578-ae39-426b-ae7d-28db8be01f14
|
||||
summarizeBy: none
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column MARKET_DESC
|
||||
dataType: string
|
||||
lineageTag: 4ec40049-d872-4938-ac9b-116f6ab21241
|
||||
summarizeBy: none
|
||||
sourceColumn: MARKET_DESC
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
column TA_SOURCE = [TA] & [DATA_SOURCE]
|
||||
lineageTag: 240ce796-54f0-400d-8e23-9f848c0c7d30
|
||||
summarizeBy: none
|
||||
|
||||
annotation SummarizationSetBy = Automatic
|
||||
|
||||
partition Dim_MarketTA_Total = m
|
||||
mode: import
|
||||
queryGroup: Dim
|
||||
source = ```
|
||||
let
|
||||
Source =
|
||||
Value.NativeQuery(
|
||||
Databricks.Catalogs(
|
||||
ServerAddress, HttpPath, [
|
||||
Catalog = CatalogName,
|
||||
Database = null,
|
||||
EnableAutomaticProxyDiscovery = null,EnableQueryResultDownload="0"
|
||||
]
|
||||
){
|
||||
[Name = CatalogName, Kind = "Database"]
|
||||
}[Data],
|
||||
"
|
||||
SELECT DISTINCT
|
||||
MARKET,
|
||||
TA,
|
||||
TA_RN,
|
||||
MARKET_DESC,
|
||||
DATA_SOURCE
|
||||
FROM
|
||||
dm.dm_td_ext_unionall_market_ta
|
||||
"
|
||||
& UsingLimit,
|
||||
null,
|
||||
[
|
||||
EnableFolding = true
|
||||
]
|
||||
)
|
||||
in
|
||||
Source
|
||||
```
|
||||
|
||||
annotation PBI_ResultType = Exception
|
||||
|
||||
annotation PBI_NavigationStepName = 导航
|
||||
|
||||
annotation TabularEditor_TableGroup = 04_DimTable
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,3 @@
|
||||
database
|
||||
compatibilityLevel: 1606
|
||||
compatibilityLevel: 1702
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
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
@@ -1491,8 +1491,350 @@
|
||||
"showExtraHeaderInfo": false,
|
||||
"hideKeyFieldsWhenCollapsed": false,
|
||||
"tablesLocked": false
|
||||
},
|
||||
{
|
||||
"ordinal": 4,
|
||||
"scrollPosition": {
|
||||
"x": 262.39999389648438,
|
||||
"y": 424.79998779296875
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"location": {
|
||||
"x": 480.56998142545217,
|
||||
"y": 358.92188103097789
|
||||
},
|
||||
"nodeIndex": "Fact_Sales_Total",
|
||||
"nodeLineageTag": "66266824-1f74-413e-9407-eaefe5310c49",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 220
|
||||
},
|
||||
"zIndex": 11
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 650.61316491646267,
|
||||
"y": 850.0365721429057
|
||||
},
|
||||
"nodeIndex": "Dim_DataSource",
|
||||
"nodeLineageTag": "8a47e04a-d7ca-4a96-bf05-10c9cff59288",
|
||||
"size": {
|
||||
"height": 176,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 1
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 538.95912841297559,
|
||||
"y": -50
|
||||
},
|
||||
"nodeIndex": "Dim_Calendar",
|
||||
"nodeLineageTag": "b54e7974-59f5-4b19-b987-f439b32f640d",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 2
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1026.2755855019759,
|
||||
"y": 164.17028741100853
|
||||
},
|
||||
"nodeIndex": "Dim_PackInfo_Total",
|
||||
"nodeLineageTag": "8bea7a10-d14d-4c7a-8199-365d12811eca",
|
||||
"size": {
|
||||
"height": 296,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 8
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 386.22672016061972,
|
||||
"y": 718.40153282721394
|
||||
},
|
||||
"nodeIndex": "Dim_StoreTypeMID",
|
||||
"nodeLineageTag": "d6ca2686-554d-4d78-a475-7787f1325ec0",
|
||||
"size": {
|
||||
"height": 152,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 3
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 134.36502478014194,
|
||||
"y": 514.2563920221728
|
||||
},
|
||||
"nodeIndex": "Dim_PlatformMID",
|
||||
"nodeLineageTag": "1cd2fd49-62d1-49ca-ac98-218be929baae",
|
||||
"size": {
|
||||
"height": 152,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 4
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 50,
|
||||
"y": 310.29737465129062
|
||||
},
|
||||
"nodeIndex": "Dim_RegionType",
|
||||
"nodeLineageTag": "6aa1d3be-7da3-480d-96ed-18f4d5839bbe",
|
||||
"size": {
|
||||
"height": 152,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 5
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 252.42087404084998,
|
||||
"y": 82.009037830218517
|
||||
},
|
||||
"nodeIndex": "Dim_DataSource_ForRLS",
|
||||
"nodeLineageTag": "8a0dec48-e4ca-410e-bfb9-022ad263205c",
|
||||
"size": {
|
||||
"height": 176,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 6
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1423.3244289314594,
|
||||
"y": 88.4380367406618
|
||||
},
|
||||
"nodeIndex": "Dim_Corp",
|
||||
"nodeLineageTag": "188bce16-d07d-4b39-946b-b744c9a78bf3",
|
||||
"size": {
|
||||
"height": 200,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 7
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1052.0209965928477,
|
||||
"y": 662.7981927454116
|
||||
},
|
||||
"nodeIndex": "Dim_Market_Total",
|
||||
"nodeLineageTag": "e3bea067-c208-4eb5-84c4-2dd40535ed78",
|
||||
"size": {
|
||||
"height": 152,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 9
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1470,
|
||||
"y": 672
|
||||
},
|
||||
"nodeIndex": "Dim_MarketTA_Total",
|
||||
"nodeLineageTag": "9828a88e-525f-44ef-8342-ff83d4d771d8",
|
||||
"size": {
|
||||
"height": 248,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 10
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 908,
|
||||
"y": 945
|
||||
},
|
||||
"nodeIndex": "Dim_BrandMKT",
|
||||
"nodeLineageTag": "ca124965-ac38-4d4a-add3-99afe0bd5da7",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 12
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1316,
|
||||
"y": 987
|
||||
},
|
||||
"nodeIndex": "Dim_BrandDefaultMKT",
|
||||
"nodeLineageTag": "26b52edb-c7e8-4c06-ad2a-4320a22967b9",
|
||||
"size": {
|
||||
"height": 248,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 0
|
||||
}
|
||||
],
|
||||
"name": "Fact_Sales_Total",
|
||||
"zoomValue": 100,
|
||||
"pinKeyFieldsToTop": true,
|
||||
"showExtraHeaderInfo": false,
|
||||
"hideKeyFieldsWhenCollapsed": false,
|
||||
"tablesLocked": false
|
||||
},
|
||||
{
|
||||
"ordinal": 5,
|
||||
"scrollPosition": {
|
||||
"x": 0,
|
||||
"y": 55.200000762939453
|
||||
},
|
||||
"nodes": [
|
||||
{
|
||||
"location": {
|
||||
"x": 848.40442164893818,
|
||||
"y": 941.1040159587094
|
||||
},
|
||||
"nodeIndex": "Dim_Market",
|
||||
"nodeLineageTag": "e93174e2-bfca-4d29-bee7-23d72512e194",
|
||||
"size": {
|
||||
"height": 296,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 2
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 50,
|
||||
"y": -50
|
||||
},
|
||||
"nodeIndex": "Fact_Sales_Total_AIA",
|
||||
"nodeLineageTag": "66e3af3d-7196-48cf-bbbf-64e7dcd68fd8",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 3
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 466.78249681720126,
|
||||
"y": 51.654010372800485
|
||||
},
|
||||
"nodeIndex": "Dim_PackInfo",
|
||||
"nodeLineageTag": "f420be02-8dc1-467f-8e0e-a8231e8b72e6",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 4
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 179.83139682408921,
|
||||
"y": 303.7075487176154
|
||||
},
|
||||
"nodeIndex": "Dim_Calendar",
|
||||
"nodeLineageTag": "b54e7974-59f5-4b19-b987-f439b32f640d",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 5
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1422.5341053415314,
|
||||
"y": 877.91301490724027
|
||||
},
|
||||
"nodeIndex": "Dim_InsSalesType_AIASpecial",
|
||||
"nodeLineageTag": "e87a2aeb-7176-416d-82c6-8af2c15345ab",
|
||||
"size": {
|
||||
"height": 176,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 6
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1135.4403075307409,
|
||||
"y": 745.55437675002474
|
||||
},
|
||||
"nodeIndex": "Dim_InsSalesType",
|
||||
"nodeLineageTag": "a283b30f-6bf9-4841-8c06-8b4b27572f51",
|
||||
"size": {
|
||||
"height": 200,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 9
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 1422.5235789797198,
|
||||
"y": 577.09547945074644
|
||||
},
|
||||
"nodeIndex": "Dim_InsSalesTypeKey_AIA",
|
||||
"nodeLineageTag": "027aa92b-8b0a-46e6-97fd-799f5a3396cc",
|
||||
"size": {
|
||||
"height": 200,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 7
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 753.25658465218567,
|
||||
"y": 340.65589965453603
|
||||
},
|
||||
"nodeIndex": "Fact_Sales_THC",
|
||||
"nodeLineageTag": "dd276b39-96c0-46dd-878f-9f1f23dbeb5c",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 8
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 492.56123070175306,
|
||||
"y": 694.310347125082
|
||||
},
|
||||
"nodeIndex": "Fact_Sales",
|
||||
"nodeLineageTag": "c6bdcb23-6f0c-4bd2-98b6-b3fd012d5ba6",
|
||||
"size": {
|
||||
"height": 300,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 10
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 561.04181342746517,
|
||||
"y": 1222.2199404277803
|
||||
},
|
||||
"nodeIndex": "AIA_AdvanceAnalysis_Key_Competitor",
|
||||
"nodeLineageTag": "9122e4fc-9030-4888-b909-269a57eefa95",
|
||||
"size": {
|
||||
"height": 128,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 11
|
||||
},
|
||||
{
|
||||
"location": {
|
||||
"x": 274.89046363992907,
|
||||
"y": 1047.2096172088673
|
||||
},
|
||||
"nodeIndex": "Dim_KeyCompetitor",
|
||||
"nodeLineageTag": "a6eb142e-da93-4631-939c-d1305beec9f0",
|
||||
"size": {
|
||||
"height": 128,
|
||||
"width": 234
|
||||
},
|
||||
"zIndex": 1
|
||||
}
|
||||
],
|
||||
"name": "Layout 2",
|
||||
"zoomValue": 100,
|
||||
"pinKeyFieldsToTop": true,
|
||||
"showExtraHeaderInfo": false,
|
||||
"hideKeyFieldsWhenCollapsed": false,
|
||||
"tablesLocked": false
|
||||
}
|
||||
],
|
||||
"selectedDiagram": "Fact_Sales_NIAD",
|
||||
"selectedDiagram": "Layout 2",
|
||||
"defaultDiagram": "All tables"
|
||||
}
|
||||
Reference in New Issue
Block a user