具有两个或多个日期范围的 MDX 查询
Posted
技术标签:
【中文标题】具有两个或多个日期范围的 MDX 查询【英文标题】:MDX Query with two or more date ranges 【发布时间】: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');
【问题讨论】:
【参考方案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' 的语法不正确。"以上是关于具有两个或多个日期范围的 MDX 查询的主要内容,如果未能解决你的问题,请参考以下文章