累积和 - 选择层次结构的部分

时间:2012-05-29 02:19:44

标签: sql-server ssas mdx olap

我有一个有趣的问题。

我需要对由时间维度的片段创建的集合的累积和。时间维度基于小时和分钟。这个维度从0小时和分钟开始,到23小时59分结束。

我需要做的是从09:30 AM - 04:00 PM或4:30 PM - 09:30 AM切出部分。我需要这些值才能执行累积总和。我希望有人能用标准的MDX建议一种方法。如果不是我唯一的选择,编写我自己的存储过程,使用上述逻辑形成我的期间设置提取?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以在时间维度中仅使用小时创建辅助层次结构,并使用它过滤查询。

[Time].[Calendar] -> the hierarchy with year, months, day and hours level
[Time].[Hour] -> the 'new' hierarchy with only hours level (e.g.) 09:30 AM.

您可以在mdx中进行查询,将您的条件添加为过滤器:

SELECT
   my axis...
WHERE ( SELECT { [Time].[Hour].[09:30 AM]:[Time].[Hour].[04:00 PM] } on 0 FROM [MyCube] )

您还可以创建新维度而不是层次结构,不同之处在于autoexists行为和性能。