Merci d'avoir répondu. je trouve une solution à la question
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;
Alors je peux obtenir à tout moment à quel point il y a des contacts dans une catégorie:
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]
}
Mais le plus gros problème est maintenant la performance ... Mais Je ne vois pas comment améliorer perf sans réduire le volume de données.
Cordialement