我是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语句,它按属性维度过滤,也可以由聚合使用
有人可以给我一个如何解决这个问题的建议吗?
答案 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]
)