【问题标题】:MDX Query with two or more date ranges具有两个或多个日期范围的 MDX 查询
【发布时间】:2014-08-12 23:17:06
【问题描述】:

是否可以在 MDX 查询中放置两个或多个数据范围?

这部分mdx查询:

FILTER([Time].[Date].MEMBERS,[Time].CURRENTMEMBER IN([Time].[2013].[2].[2013-02-01] : [Time].[2014].[7].[2014-07-07]))

转换为 SQL 为:

WHERE Date BETWEEN '2013-02-01' AND '2014-07-07'

我想在 MDX 中实现的目标:

SQL:

WHERE (Date BETWEEN '2013-02-01' AND '2014-07-07') OR (Date Between '2012-07-06' AND '2012-08-17');

【问题讨论】:

    标签: sql mdx olap dimension mondrian


    【解决方案1】:

    “:”运算符只是在两个成员(包括)之间创建一个自然排序的所有成员集合。

    您可以使用 Set 表示法创建包含其他 Set 的元素的集合,只要它们位于同一层次结构中。

    FILTER([Time].[Date].MEMBERS,[Time].CURRENTMEMBER IN(
        { 
            [Time].[2013].[2].[2013-02-01] : [Time].[2014].[7].[2014-07-07], 
            [Time].[2012].[7].[2012-07-06] : [Time].[2012].[8].[2012-08-17]
        })
    

    【讨论】:

    • 等等,你在 IN(..) 中将 [Time].CURRENTMEMBER 加倍?
    • 哎呀,糟糕的复制和粘贴,应该只是时间:时间部分
    • 太棒了! +50 如果可以的话
    • 不适用于 Microsoft SSAS = "'IN' 的语法不正确。"
    猜你喜欢
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多