在MDX查询中计算date值
我想创build一个每天更新的dynamic查询。
所以过滤今天的报告我使用
[Report Date].[Report Date].&[4226]
4226来自:
=DATEVALUE("28-07-2017")-38718 or =TODAY()-38718 (convert to number)
38718只是一个从立方体中获取正确date的任意数字。
编辑:
这是我目前的查询:
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) + "]") )
但是它说在声明中没有检测到列。 我也试过不同的date格式,有什么想法?
从这个线程的提示:
VBAdate为整数
我用CDbl而不是Datevalue,这给了我想要的结果!
StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]")