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列。 :( – konzolcowboy 2015-03-03 08:52:53
编辑,现在它应该工作 – George 2015-03-03 09:03:16
是的,它的工作!谢谢你的帮助! – konzolcowboy 2015-03-03 09:16:49