謝謝你的回答。 我找到一個解決問題的
CREATE MEMBER CURRENTCUBE.[Measures].[mono] AS
filter(
GENERATE(
DynamicContactSet,
tail(
-- ORDER(
filter(
[Contact].[Contact PMID].currentmember
* {null : [Period].[Per quarter].currentmember}
* {null : [Period].[Per week].currentmember}
* [Category].[Category].[Category]
,[Measures].[max_date]>0)
-- ,[Measures].[max_date],desc)
,1)
),cint([Category].[Category].currentmember.MEMBER_KEY)= 1
).count
, VISIBLE = 0;
CREATE MEMBER CURRENTCUBE.[Measures].[multi] AS
filter(
GENERATE(
DynamicContactSet,
tail(
-- ORDER(
filter(
[Contact].[Contact PMID].currentmember
* {null : [Period].[Per quarter].currentmember}
* {null : [Period].[Per week].currentmember}
* [Category].[Category].[Category]
,[Measures].[max_date]>0)
-- ,[Measures].[max_date],desc)
,1)
),cint([Category].[Category].currentmember.MEMBER_KEY)= 2
).count
, VISIBLE = 0;
CREATE MEMBER CURRENTCUBE.[Measures].[unsuscriber] as
filter(
GENERATE(
DynamicContactSet,
tail(
-- ORDER(
filter(
[Contact].[Contact PMID].currentmember
* {null : [Period].[Per quarter].currentmember}
* {null : [Period].[Per week].currentmember}
* [Category].[Category].[Category]
,[Measures].[max_date]>0)
-- ,[Measures].[max_date],desc)
,1)
),cint([Category].[Category].currentmember.MEMBER_KEY)=3
).count
, VISIBLE = 0;
CREATE MEMBER CURRENTCUBE.[Measures].[notopin] as
DynamicContactSet.count - (mono + multi + unsuscriber)
, VISIBLE = 0;
CREATE MEMBER CURRENTCUBE.[Measures].[ContactNumber] AS
CASE
WHEN cint([Category].[Category].currentmember.MEMBER_KEY)= 1 THEN mono
WHEN cint([Category].[Category].currentmember.MEMBER_KEY)= 2 THEN multi
WHEN cint([Category].[Category].currentmember.MEMBER_KEY)= 3 THEN unsuscriber
ELSE notopin
END
, VISIBLE = 1;
然後我就可以隨時得到多少接觸有一個類別:
SELECT [Measures].[ContactNumber] on columns
,(
{[Period].[Per Quarter].[month].[M01-2000]
,[Period].[Per Quarter].[month].[M01-2005]
,[Period].[Per Quarter].[month].[M01-2007]
,[Period].[Per Quarter].[month].[M01-2010]
,[Period].[Per Quarter].[month].[M01-2015]
,[Period].[Per Quarter].[month].[M01-2017]
,[Period].[Per Quarter].[month].[M12-2017]}
,[Category].[Category].[Category]
) ON rows
FROM [BI SUBSCRIPTION]
where
{
[Contact].[Contact PMID].[jean paul]
[Contact].[Contact PMID].[jean michel]
[Contact].[Contact PMID].[jean françois]
[Contact].[Contact PMID].[jean christophe]
[Contact].[Contact PMID].[jean rachid]
}
但更大的問題是目前性能...... 但我不明白如何在不減少數據量的情況下提高性能。
Regards