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)) + "]")
我想创建一个每天更新的动态查询。
所以我使用
过滤今天的报告[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)) + "]")