mdxmdx-query

MDX - Grand total missing when filtering


I've been working on an ExcelDNA C# xll that allows users to enter simple words (under guidance) and I construct the elaborate MDX for them to query against a remote ActivePivot cube.

During testing I've ntoticed that when filtering, the grand total disappears (presumably it's joining tuples together). How do I still get a grand total? Do I need to use SCOPE or create a calculated member?

Thanks to more advanced MDX people:

SELECT 
  NON EMPTY 
    {
      [Measures].[Notional.SUM]
     ,[Measures].[Notional.SHORT]
     ,[Measures].[Notional.LONG]
    } ON COLUMNS
 ,NON EMPTY 
    Hierarchize
    (
      Filter
      (
        (
          [CDR].[CDR].MEMBERS
         ,[Book].[Book].MEMBERS
        )
       ,
        Left([Book].[Book].CurrentMember.MemberValue,2) = "22"
      )
     ,POST
    ) ON ROWS
FROM [TraderCube]
WHERE 
  [Date].[Date].[2020-01-24];

Solution

  • The following is something similar against AdvWrks cube:

    WITH 
    
      //>>inside the WITH clause we have moved the set
      SET [FilteredSet] AS 
        {
          Filter
          (
            [Reseller].[Reseller Type].[Business Type].MEMBERS
           ,
              Left([Reseller].[Reseller Type].CurrentMember.MemberValue,2) = "sp"
            OR 
              Left([Reseller].[Reseller Type].CurrentMember.MemberValue,2) = "VA"
          )
        } 
    
      //>>next we create a custom member that is the sum of the filtered set 
      MEMBER [Reseller].[Reseller Type].[All Visible Resellers] AS 
        Aggregate([FilteredSet]) 
    SELECT 
      NON EMPTY 
        {[Measures].[Reseller Sales Amount]} ON COLUMNS
     ,NON EMPTY 
    
        //>> inside these curly brackets we declare a set that is the filtered set and the Total member
        { 
          [FilteredSet]
         ,[Reseller].[Reseller Type].[All Visible Resellers]
        } ON ROWS
    FROM [Adventure Works]
    WHERE 
      [Date].[Calendar].[Calendar Year].&[2013];
    

    The results of the above is the following:

    enter image description here