MDX:如何在 MDX 查询中获取两个日期之间的周数

MDX: How to get the weeks between two dates in MDX Query

我想在 MDX 查询中将周作为两个日期之间的列。

例如,如果我输入这些日期:2015-01-012015-02-01 我想得到这个:

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

我已经使用 "Filter" 方法创建了这个 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]

如果我 运行 这个查询,我得到“Unknown”列。

您应该将日期定义为子多维数据集切片 ({[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]