MDX CountDistinct按筛选的属性维度计算成员

时间:2013-07-11 13:53:41

标签: filter count distinct mdx

我是MDX的新手,我想将以下SQL语句写入MDX

  SELECT COUNT(DISTINCT [DESC_Charm])as total
  FROM [Database].[dbo].[tbl_Charm] 
  WHERE ([DESC_Status] = 'solved'
  OR [DESC_Status] = 'terminated'
  OR [DESC_Status] = 'validated')

我在MDX中尝试过将其作为计算成员:

SUM(
{   [D Status].[DESC Status].&[solved],
    [D Status].[DESC Status].&[terminated],
    [D Status].[DESC Status].&[validated]
}
,[Measures].[F_CountDistinct_CHARMS]
)

然而,这个陈述有时很重要,当我按日期汇总日历周或月......它只能在我最深的聚合级别上正常工作,如天

我需要的是一个DistinctCount语句,它按属性维度过滤,也可以由聚合使用

有人可以给我一个如何解决这个问题的建议吗?

1 个答案:

答案 0 :(得分:0)

我认为他意味着只需用SUM()替换AGGREGATE()函数即可解决问题。这是因为所有成员都属于[D Status].[DESC Status]属性。

Aggregate(
{   [D Status].[DESC Status].&[solved],
    [D Status].[DESC Status].&[terminated],
    [D Status].[DESC Status].&[validated]
}
,[Measures].[F_CountDistinct_CHARMS]
)

由于度量已经是一个非常重要的计数,因此如果需要在SSAS中将过滤器作为OLAP多维数据集计算成员,则可以使用

获取
(
   [D Status].[DESC Status].&[solved],
   [D Status].[DESC Status].&[terminated],
   [D Status].[DESC Status].&[validated],
   [Measures].[F_CountDistinct_CHARMS]
)