2017-07-28 37 views
0

我想創建一個每天更新的動態查詢。MDX查詢中的Datevalue計算

所以對今天的報告過濾我用

[Report Date].[Report Date].&[4226] 

的4226是來自:

=DATEVALUE("28-07-2017")-38718 or =TODAY()-38718 (convert to number) 

38718只是一個任意數量擺脫立方體正確的日期。

編輯:

這裏是我當前的查詢:

SELECT NON EMPTY { [Measures].[Price FC] } ON COLUMNS 
FROM (SELECT (-{ [Agency].[Nationality - Consortium - Agency].[Nationality].&[111], 
        [Agency].[Nationality - Consortium - Agency].[Nationality].&[116], 
        [Agency].[Nationality - Consortium - Agency].[Nationality].&[242], 
        [Agency].[Nationality - Consortium - Agency].[Nationality].&[134] }) ON COLUMNS 
FROM (SELECT ({ StrToMember("[Report Date].[Report Date].&[" + Str(DateValue(Format(Now(), "dd-MM-yyyy")) - 38718) + "]") }) ON COLUMNS 
FROM (SELECT ({ [Market].[Market].[Market].&[103] }) ON COLUMNS 
FROM (SELECT ({ [Travel Type].[Travel Type].&[101], 
        [Travel Type].[Travel Type].&[102], 
        [Travel Type].[Travel Type].&[103] }) ON COLUMNS 
FROM (SELECT ({ [Departure Date].[Year].&[2017] }) ON COLUMNS 
FROM [Booking]))))) 
WHERE ([Departure Date].[Year].&[2017], 
     [Travel Type].[Travel Type].CurrentMember, 
     [Market].[Market].[Market].&[103], 
     StrToMember("[Report Date].[Report Date].&[" + Str(DateValue(Format(Now(), "dd-MM-yyyy")) - 38718) + "]")) 

但它說,沒有在聲明中檢測到列。我也嘗試過不同的日期格式,有什麼想法?

+0

你能發佈確切的錯誤消息嗎?你可以在SSMS中運行這個MDX嗎? –

回答

1

繼從這個線程提示:

VBA Date as integer

我使用CDbl代替DATEVALUE,這給了我想要的結果!

StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")