2

我对 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 语句,它按属性维度过滤,也可以通过聚合使用

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

4

1 回答 1

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]
)
于 2015-05-21T20:04:46.657 回答