2016-11-18 2 views
0

Je suis en train de créer une formule dans la mesure calculée, mais aucun ne fonctionne pas correctementSSAS mesure Calc sur le filtrage multi-membres

Cell dimension a plusieurs membres, y compris le contrôle et Core. J'ai aussi mesure appelée [mesures]. [Note] qui est précalculée en pourcentage

je dois obtenir des niveaux inférieurs formule

(([Measures].[Rate] in [Cell].[ABC].&[Control] and [Cell].[ABC].&[Core]) 
- ([Measures].[Rate] not in [Cell].[ABC].&[Control] and [Cell].[ABC].&[Core])) 
/([Measures].[Rate] in [Cell].[ABC].&[Control] and [Cell].[ABC].&[Core]) 

Quelque chose comme (A + B)/A, mais je ne suis pas en mesure de calculer personne A et B.

S'il vous plaît noter [mesures]. [Note] est au format de pourcentage ne peut donc pas se résumer

EDIT

également une idée si la même ci-dessus doit être fait avec deux tranches de différentes dimensions pour une seule mesure
par exemple.

([Measures]. [Note] dans [Cell].. [ABC]. & [Control] et [Cell]. [ABC]. & [Core] aussi dans [Data]. [PQR] & [ Oui])

ou

SUM (
    { [Cell].[ABC].&[Control] , [Cell].[ABC].&[Core] } 
    ,{[Data].[PQR].&[Yes])} 
    ,[Measures].[A] 
     ) 

est au-dessus réalisable ou quel sera sa syntaxe

Répondre

1

Hmm peut-être quelque chose comme:

CREATE MEASURE [Measures].[SpecialRate] 
AS 
AGGREGATE({[Cell].[ABC].&[Control],[Cell].[ABC].&[Core]}, [Measures].[Rate]) 
- AGGREGATE(EXCEPT([Cell].[ABC].MEMBERS,{[Cell].[ABC].&[Control],[Cell].[ABC].&[Core]}), [Measures].[Rate]) 
/AGGREGATE({[Cell].[ABC].&[Control],[Cell].[ABC].&[Core]}, [Measures].[Rate]) 
,VISIBLE = 1; 
+0

Merci je me suis déplacé la mesure après la dimension intérieure globale et ça a marché – Ashish

1

La manière la plus simple consiste à redéfinir la dimension Cell pour inclure une nouvelle colonne de cumul qui inclut à la fois Control et Core dans un cumul.

Si ce n'est pas possible et que vous devez le faire dans MDX alors une façon est de créer une mesure calculée sur la dimension et l'utiliser:

CREATE MEMBER CurrentCube.[Cell].[ABC].[All].[Control and Core] as 
AGGREGATE({[Cell].[ABC].&[Control], [Cell].[ABC].&[Core]}) 
,VISIBLE=0; 

CREATE MEMBER CurrentCube.[Cell].[ABC].[All].[Not Control and Core] as 
AGGREGATE(-{[Cell].[ABC].&[Control], [Cell].[ABC].&[Core]}) 
,VISIBLE=0; 

CREATE MEMBER CurrentCube.[Measures].[My Calc] as 
(([Measures].[Rate], Cell].[ABC].[All].[Control and Core]) 
- ([Measures].[Rate], Cell].[ABC].[All].[Not Control and Core])) 
/([Measures].[Rate], Cell].[ABC].[All].[Control and Core]);