如何获取维度的所有当前选定成员的数量

How to get count of all currently selected members of dimension

我有一个日期维度的立方体:

Period
- Year
-- Quarter
--- Month
---- Date

我需要统计所有日期,select由用户编辑(f.e。在 Excel 中)。我尝试使用计算成员,例如:

[Period].[Period].CurrentMember.children.count 

1 个月 selected 就好了。在其他方面(select只编辑了几个日期或季度)它 returns 下一级层次结构的子级数。

Descendants([Period].[Period],[Period].[Period].[Date]).count
Descendants([Period].[Period].CurrentMember,[Period].[Period].[Date]).count

所以我尝试使用Descendants。当任何级别的 1 个元素被 selected 时,结果都很好。但是一个你 select f.e。一季度 2 个月 - 它给出了所有元素的计数。

如何计算日期级别的所有 selected 元素?

我也试过:

[Period].[Period].[Date].count
[Period].[Period].[Date].CurrentMember.count
COUNT([Period].[Period].[Date])
COUNT([Period].[Period].[Date].CurrentMember)

要在 Excel 中解决多选问题,您可以尝试 Dynamic Set 技术。假设您的 [Period] 维度具有 [YQMD] 层次结构,然后尝试以下
CREATE DYNAMIC SET SelectedDates AS ( [Period].[YQMD].[Date] ) CREATE MEMBER CURRENTCUBE.[Measures].[SelectedDatasCount] AS ( SelectedDates.count )
参考这个SO article and MSDN discussion。很遗憾,Mosha 的文章不再可用。
警告 - 使用 Dynamic Set 的解决方案可能会影响查询性能。