【问题标题】:MDX Query to extract date & use it as a string to filter dataMDX 查询以提取日期并将其用作字符串来过滤数据
【发布时间】:2019-10-16 11:47:49
【问题描述】:

我有一个名为 forecast version 的字段,它以“FY20 January Forecast”格式存储版本,以及存储日期的销售时间字段。我想要的是我的 MDX 查询,以根据当前日期过滤最后两个预测版本的数据。 例如。如果当前日期是 2019 年 10 月,它应该会显示 20 财年 9 月预测 和 20 财年 10 月预测 的数据。

我想使用它类似于 SQL 中的 where 条件。

【问题讨论】:

    标签: ssas mdx


    【解决方案1】:

    看看下面的例子。在我的第一个查询中,我正在重新输入“Internet Sales Amount” 2013 年 5 月。

    select 
    {
    [Measures].[Internet Sales Amount]
    }
    on columns,
    [Date].[Calendar].[Month].&[2013]&[5]
    on rows 
    from 
    [Adventure Works]
    

    接下来我们修改它返回“2013年5月”之前的两个月

    select 
    {
    [Measures].[Internet Sales Amount]
    }
    on columns,
    ([Date].[Calendar].[Month].&[2013]&[5]).lag(2):([Date].[Calendar].[Month].&[2013]&[5]).lag(1)
    on rows 
    from 
    [Adventure Works]
    

    编辑:使查询动态

    select 
    {
    [Measures].[Internet Sales Amount]
    }
    on columns,
    strtoset('[Date].[Calendar].[Month].&['+cstr(datepart("yyyy",Now()))+ ']&['+cstr(datepart("m",Now()))+'].lag(2):[Date].[Calendar].[Month].&['+cstr(datepart("yyyy",Now()))+ ']&['+cstr(datepart("m",Now()))+'].lag(1)')
    --Output of the above expression is 
    --[Date].[Calendar].[Month].&[2019]&[10].lag(2):[Date].[Calendar].[Month].&[2019]&[10].lag(1)
    on rows 
    from 
    [Adventure Works]
    

    【讨论】:

    • 但我不想硬编码一个月。我希望它根据当前月份是动态的
    • 使上述查询动态化。但请确保根据您的层次结构修改表达式
    • @aarti 上面的查询运气好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多