检查MDX中是否存在维度

时间:2017-03-05 10:37:24

标签: sql-server ssas mdx olap cube

如何在MDX状态中检查轴上是否存在一个维度?

我需要检查axis1上存在多少时间单位(天,周,月......)并使用它来计算度量。这是一个例子,应该发生什么,我采取了一些方面:

days -> [Measures].[A] = [Measures].[B] / number of members in axis 1, from only date dimension (365)

months -> [Measures].[A] = [Measures].[B] / number of members in axis 1, from only date dimension (12)

months, product group -> [Measures].[A] = [Measures].[B] / number of members in axis 1, from only date dimension (12)

因此,与日期维度不同的维度不应影响加工。我只需要依靠[Date]维度来计算成员。

1 个答案:

答案 0 :(得分:1)

一个简单的例子是计算天数:

With
Member [Measures].[Members on rows] AS 
Axis(1).Count 

Select
Non Empty [Measures].[Members on rows] on columns, 
Non Empty [Date].[Day].[Day].Members on rows
From [Sales]
Where [Date].[Month].[Month].&[201701]

但是你只能获得行数,你无法预测轴上发生了什么。您还可以检查整个属性计数=报告属性计数:

Count(existing [Date].[Day].[Day].Members) = Count([Date].[Day].[Day].Members)

如果它返回 true ,则很可能意味着您没有使用过滤报告中的[日期]。[日]层次结构。