Search code examples
mdxquerying

Excluding dimension members from the measure calculation


I am not an MDX expert, I have this simplified query:

WITH MEMBER [Measures].[SalesCalc] AS 
    (
        [Time Calculations].[Aggregation].&[4]
       ,[Measures].[Sales]
    )
SELECT 
    [Measures].[SalesCalc]
ON 0
,{
    [Product].[Product Source].[Product Source] - [Product].[Product Source].&[2]
} ON 1
FROM [Cube]

Which calculates my measure (from existing measure and pre-calculated aggregation) and shows all product sources except one particular source. My goal is to show all the sources, the &[2] source should be there but the measure value for it should be NULL.

So I'm trying to get something like:

WITH MEMBER [Measures].[SalesCalc] AS 
    (
        [Time Calculations].[Aggregation].&[4]
       ,[Measures].[Sales]
    )
SELECT 
   [Measures].[SalesCalc] //but for [Product].[Product Source].&[2] this is NULL
ON 0
,
   [Product].[Product Source].[Product Source] ON 1
FROM [Cube]

I seem to be unable to add the "do not calculate for product source &[2]" in measure and I cannot use the product source hierarchy on rows when I do a select since its already used on columns.

Any ideas?


Solution

  • Maybe try using IIF

    WITH 
    MEMBER [Measures].[SalesCalc] AS 
    IIF(
      [Product].[Product Source].CURRENTMEMBER 
        IS [Product].[Product Source].[Product Source].&[2]
      ,NULL
      (
        [Time Calculations].[Aggregation].&[4]
       ,[Measures].[Sales]
      )
    )
    SELECT 
       [Measures].[SalesCalc] ON 0
      ,[Product].[Product Source].[Product Source] ON 1
    FROM [Cube];