我对MDX很陌生。我知道MDX是一种查询语言,而不是一种数据转换语言。但是,我也意识到,这种区别在一定程度上是没有意义的;在转换和报告之间没有明确的界限,而且每种查询语言都能够进行某种转换。熟练使用查询语言需要知道哪些转换是合理的,哪些转换需要重新设计底层模式。
根据我对MDX的了解,它显然具有为在维度中创建计算成员而设计的功能。不过,除此之外,我不清楚它的转换能力。有人能简要总结MDX可以合理地完成哪些类型的转换吗?
我不打算把这个问题局限于我的特殊报道挑战。但是,通过描述我的项目,我可以说明一些我感兴趣的转换类型。下面是我所做工作的描述:
我需要使用MDX创建一些库存和销售报告。我正在使用2008 Analysis。数据被组织成三个不同的立方体:在手库存、在途库存和销售。我的报告要求以几种方式转换数据。例如:
1)我需要使用4-4-5日历的规则,从“周”属性中推断出一个“月”属性。我相当肯定,MDX可以很好地做到这一点。
2)我需要从“月份”属性中推断出“日历月”维度。我相信MDX可以做到这一点,但我不确定是否有一个优雅的解决方案或一个应该避免的方案,以支持模式重新设计。
3)我需要从“仓库”维度推断出一个“区域”维度。我没有看到任何证据表明MDX可以以一种优雅的方式做到这一点。
4)我需要将总库存计算为手头库存加上在途库存。从搜索web来看,查询两个不同的多维数据集似乎是可能的,但支持模式重新设计是不可取的,但水仍然非常混乱。
发布于 2013-10-08 17:06:14
我想说,您的大部分需求可以使用Analysis完成,但不一定使用MDX。相反,它们将在立方体设计中完成。这通常是使用GUI来完成的,这是Visual,称为BIDS ()。如果您绝对想使用一种语言,可以使用XMLA,这就是投标与Analysis服务器通信的方式。但这仍然不是MDX,也不是很好的文档,因此很难学习。您可以使用.net和AMO,但最简单的方法是在投标中的图形用户界面。
在多维数据集所基于的关系表的设计中,您的一些需求将得到最优的实现。前三个需求最好在维度表中实现,然后只在多维数据集定义中的维度对象中使用。对于第四个需求,您是对的,这可以很容易地在多维数据集计算脚本中的计算度量中实现。这确实是MDX。
理论上,您还可以在MDX中以某种方式实现前三个需求。但这将是复杂的,难以维护和有不好的表现。MDX不是为这类需求而设计的。
https://stackoverflow.com/questions/19186339
复制相似问题