MDX 查询中的日期值计算

Datevalue calculation in MDX query

我想创建一个每天更新的动态查询。

所以我使用

过滤今天的报告
[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) + "]") )

但是它说在语句中没有检测到列。我也尝试过不同的日期格式,有什么想法吗?

遵循此线程中的提示:

VBA Date as integer

我使用 CDbl 而不是 Datevalue,这给了我想要的结果!

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