MDX:如何在 MDX 查询中获取两个日期之间的周数
MDX: How to get the weeks between two dates in MDX Query
我想在 MDX 查询中将周作为两个日期之间的列。
例如,如果我输入这些日期:2015-01-01 和 2015-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]
我想在 MDX 查询中将周作为两个日期之间的列。
例如,如果我输入这些日期:2015-01-01 和 2015-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]