2017-05-23 2 views
0

Je suis nouveau dans mdx, j'ai une question à propos de mettre deux condition dans lequel appliquer dans une partie différente des requêtes mdx. dans ma requête j'ai deux ensemble (inclure à partir de date: à ce jour) que je veux appliquer premier ensemble au premier membre et deuxième ensemble au deuxième membre, mais je ne veux pas créer tuple dans le membre parce que je veux calculer la somme de mesure pour chaque client. quand je mets la condition là où, une seule date s'applique au membre que je veux appliquer une autre condition s'applique au membre différent. comment puis-je faire cela?partie différente de l'endroit où la condition s'applique à différentes parties de requêtes mdx

WITH 
SET BaseDate AS 
    [Vw Dim Date].[Shamsi Date].&[1396/02/22] : [Vw Dim Date].[Shamsi Date].&[1396/03/19] 

SET CompareDate AS 
    [Vw Dim Date].[Shamsi Date].&[1396/01/21] : [Vw Dim Date].[Shamsi Date].&[1396/02/19] 


MEMBER TotalCustomerCntInBase AS 
    Sum(BaseDate.item(count(BaseDate)-1) ,[Measures].[Total Customer Cnt]) 

MEMBER TotalCustomerCntInCompare AS 
    Sum(CompareDate.item(count(CompareDate)-1) ,[Measures].[Total Customer Cnt]) 


member numberOfActivecustomers as 
count(filter (nonempty([Vw Customer].[Customer BK].[Customer BK],[Measures].[Trade Cnt]),[Measures].[Trade Cnt]=1)) 

select {numberOfActivecustomers} on 0 
from [DV Present] 
where ([Vw Dim Date].[Shamsi Date].&[1395/01/01]:[Vw Dim Date].[Shamsi Date].&[1395/02/01]) 
+0

Ce que les membres que vous voulez se comporter différemment? Ce n'est pas vraiment clair à cause de votre code. Vous utilisez uniquement le membre [numberOfActivecustomers] ici. –

+0

Pour plus de précisions, considérez le code suivant, Je veux que l'application soit basée sur numberOfActivecustomers1 et CompareDate sur numberOfActivecustomers2. et enfin comparer numberOfActivecustomers1 et numberOfActivecustomers2. – Pari

+0

WITH BaseDate AS [Date Dim.]. [Date Shamsi]. & [1396/02/22 AS [Date Vw Dim]. [Date Shamsi]. & [1396/01/21]: [Date Vw Dim]. [Date Shamsi]. & [1396/02/19] Numéro de membreOfActivecustomers1 as count (filter (non client) [[Client BK]. [Client BK], [Mesures]. [Trade Cnt]), [Mesures]. [Trade Cnt] = 1)) – Pari

Répondre

0

Pour résumer jours, vous pouvez créer deux membres calculés (périodes) et exécuter toute mesure contre eux:

With 
Member [Vw Dim Date].[Shamsi Date].[BaseDate] as 
Sum(
    [Vw Dim Date].[Shamsi Date].&[1396/02/22]: 
    [Vw Dim Date].[Shamsi Date].&[1396/03/19] 
) 

Member [Vw Dim Date].[Shamsi Date].[CompareDate] as 
Sum(
    [Vw Dim Date].[Shamsi Date].&[1396/01/21]: 
    [Vw Dim Date].[Shamsi Date].&[1396/02/19] 
) 

// Add here any calculations you need ... 

Select 
{[Measures].[Trade Cnt]} on 0, 
{[Vw Dim Date].[Shamsi Date].[CompareDate],[Vw Dim Date].[Shamsi Date].[CompareDate]} on 1 
from [DV Present]