Ssas MDX:当我使用TopCount时,所有级别的值都不正确

Ssas MDX:当我使用TopCount时,所有级别的值都不正确,ssas,mdx,olap,olap-cube,Ssas,Mdx,Olap,Olap Cube,我对以下查询有问题。它错误地返回代理维度的所有级别值。我的要求是将所有级别的值作为为TOPCOUNT函数选择的所有值的总和。谢谢 WITH SET [0] AS { { [Sum Assured Bucket].[Sum Assured Bucket].[Sum Assured Bucket].[> 1200000] ,[Sum Assured Bucket].[Sum Assured Bucket].[Sum Assured Bu

我对以下查询有问题。它错误地返回代理维度的所有级别值。我的要求是将所有级别的值作为为TOPCOUNT函数选择的所有值的总和。谢谢

WITH 
  SET [0] AS 
    {
      {
        [Sum Assured Bucket].[Sum Assured Bucket].[Sum Assured Bucket].[> 1200000]
       ,[Sum Assured Bucket].[Sum Assured Bucket].[Sum Assured Bucket].[> 1200000].Children
      }
    } 
  SET [1] AS 
    {
      {
        [Period].[Period].[Year].[2012]
       ,[Period].[Period].[Year].[2012].Children
      }
    } 
  SET [Agent_Agent_Agent_1_ADV] AS 
    {
      TopCount
      (
        Order
        (
          {AddCalculatedMembers([Agent].[Agent].[Agent])}
         ,[Measures].[Count Of Leads]
         ,BDESC
        )
       ,5
       ,[Measures].[Count Of Leads]
      )
    } 
  SET [Agent_Agent_Agent_1_ADV_VISULATOTAL] AS 
    VisualTotals([Agent_Agent_Agent_1_ADV]) 
  SET [HIDDEN_TOTAL_0] AS 
    VisualTotals([Agent_Agent_Agent_1]) 
  SET [Agent_Agent_Agent_1] AS 
    {
      {[Agent].[Agent].[All]}
     ,Order
      (
        {
          AddCalculatedMembers
          (
            Intersect
            (
              [Agent_Agent_Agent_1_ADV_VISULATOTAL]
             ,AddCalculatedMembers([Agent].[Agent].[Agent])
            )
          )
        }
       ,[Measures].[Count Of Leads]
       ,BDESC
      )
    } 
  SET [HIDDEN_TOTAL_1] AS 
    VisualTotals([Sum Assured Bucket_Sum Assured Bucket_Sum Assured Bucket_1]) 
  SET [HIDDEN_TOTAL_2] AS 
    VisualTotals([0]) 
  SET [Sum Assured Bucket_Sum Assured Bucket_Sum Assured Bucket_1] AS 
    {
      {[Sum Assured Bucket].[Sum Assured Bucket].[All]}
     ,Hierarchize
      (
        Intersect
        (
          [0]
         ,AddCalculatedMembers
          (
            [Sum Assured Bucket].[Sum Assured Bucket].[Sum Assured Bucket]
          )
        )
      )
    } 
SELECT 
  NON EMPTY 
    {
      {[Agent].[Agent].[All]}
     ,Order
      (
        {
          AddCalculatedMembers
          (
            Intersect
            (
              VisualTotals
              (
                {
                  TopCount
                  (
                    Order
                    (
                      {AddCalculatedMembers([Agent].[Agent].[Agent])}
                     ,[Measures].[Count Of Leads]
                     ,BDESC
                    )
                   ,5
                   ,[Measures].[Count Of Leads]
                  )
                }
              )
             ,AddCalculatedMembers([Agent].[Agent].[Agent])
            )
          )
        }
       ,[Measures].[Count Of Leads]
       ,BDESC
      )
    }
  DIMENSION PROPERTIES PARENT_UNIQUE_NAME  ON 0
 ,NON EMPTY 
    [Sum Assured Bucket_Sum Assured Bucket_Sum Assured Bucket_1]
  DIMENSION PROPERTIES PARENT_UNIQUE_NAME  ON 1
 ,{[MEASURES].[Count Of Leads]} ON 2
FROM [New Policy Analysis];

这是多维数据集中的特定成员:[Agent].[Agent].[All]它将不等于使用TopCount的表达式的结果

您可以创建一个计算成员来聚合或求和topCount集合:

...
SET [Agent_Agent_Agent_1_ADV] AS 
    {
      TopCount
      (
        Order
        (
          {AddCalculatedMembers([Agent].[Agent].[Agent])}
         ,[Measures].[Count Of Leads]
         ,BDESC
        )
       ,5
       ,[Measures].[Count Of Leads]
      )
    } 
MEMBER [Agent].[Agent].[All_new] AS  
   Aggregate([Agent_Agent_Agent_1_ADV]) //<<<<Sum([Agent_Agent_Agent_1_ADV])
...
...
SELECT 
  NON EMPTY 
    {
      {[Agent].[Agent].[All_new]}  //<<<<
     ,Order
      (
        {
...
...

谢谢你的回复。但是,这对我不起作用。它在移动VISULATOTALS以选择零件后工作。以前,我一直使用VISULATOTALS作为SET的一部分。