【问题标题】:Datevalue calculation in MDX queryMDX 查询中的日期值计算
【发布时间】:2018-01-04 04:36:05
【问题描述】:

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

所以要过滤我今天使用的报告

[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) + "]") )

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

【问题讨论】:

  • 你能发布确切的错误信息吗?你能在 SSMS 中运行这个 MDX 吗?

标签: excel mdx olap cube


【解决方案1】:

遵循此线程的提示:

VBA Date as integer

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多