MDX:如何获得MDX查询中两个日期之间的星期

问题描述:

我想在MDX查询中获取两个日期之间的列作为列。MDX:如何获得MDX查询中两个日期之间的星期

例如,如果我输入这些日期:2015年1月1日2015年2月1日我想要得到这样的:

周结束的1月1日,周结束1月8日,周结束1月15日,周结束1月22日

我已创建了“过滤器”的方法这MDX查询,但它不工作:

WITH SET [WeeksBetweenDates] AS 

Filter([Date].[Year - Week - Date Hierarchy].[Week], 
[Date].[Year - Week - Date Hierarchy].CurrentMember.Member_Value >= [Date].[Year - Week - Date Hierarchy].[Week].&[2015-01-01T00:00:00] 
AND [Date].[Year - Week - Date Hierarchy].CurrentMember.Member_Value <= [Date].[Year - Week - Date Hierarchy].[Week].&[2015-02-01T00:00:00]) 

SELECT [WeeksBetweenDates] ON COLUMNS 
FROM [Team System] 

如果我运行此查询,则会得到“未知”列。

你应该定义日期为子多维数据集切片({[Date1] : [Date2]}),这将大大提高查询性能+使代码更透明(对我们的TFS测试):

select 
{ 
    [Date].[Week].members 
} on 0 
from (select { 
       [Date].[Date].&[2015-01-01T00:00:00] 
       : 
       [Date].[Date].&[2015-02-01T00:00:00] 
       } on 0 
from [Team System]) 

要让它通过使用层次的工作,你应该将[ [Date].[Year - Week - Date Hierarchy].[Week].&[2015-01-01T00:00:00]]更改为[日期]。[年 - 周 - 日期层次]。 [日期]。 & [2015-01-01T00:00:00]

+0

感谢您的评论,但此查询也无效。如果我运行查询,我会得到0列。 :( – konzolcowboy 2015-03-03 08:52:53

+0

编辑,现在它应该工作 – George 2015-03-03 09:03:16

+0

是的,它的工作!谢谢你的帮助! – konzolcowboy 2015-03-03 09:16:49