2015-03-03 67 views
1

我想在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] 

如果我運行此查詢,則會得到「未知」列。

回答

1

你應該定義日期爲子多維數據集切片({[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

相關問題