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

标签 sql mdx olap dimension mondrian

是否可以在 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');

最佳答案

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

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

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

关于sql - 具有两个或多个日期范围的 MDX 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275637/

相关文章:

c# - Linq to Entities 中的规范函数不起作用

ssas - 过滤二维的 SET

ssas - MDX 计算成员并设置减法

ssas - 对 Select 语句的特定列求和

data-warehouse - 书籍的上下文层次结构

sql - 存储过程不返回任何内容

mysql - 如何通过 PHPMyadmin 自动执行 SQL 查询?

sql - 限制 Max 和 Group by 返回太多行

c# - AMO 获取处理数据但不处理索引的分区

java - 商业智能中的 "multidimensinal data"是什么?