代码之家  ›  专栏  ›  技术社区  ›  fenix

具有两个或多个日期范围的MDX查询

  •  2
  • fenix  · 技术社区  · 10 年前

    是否可以在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');
    
    1 回复  |  直到 10 年前
        1
  •  5
  •   Dan Dosch    10 年前

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

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

    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]
        })