我是 MDX 的新手。我了解 MDX 是一种查询语言,而不是一种数据转换语言。但是,我也知道这种区别在一定程度上是没有意义的。转换和报告之间没有明确的界限,每种查询语言都能够进行某种转换。精通查询语言需要知道哪些转换是合理的,哪些需要重新设计底层模式。
从我对 MDX 的了解来看,它显然具有设计用于在维度内创建计算成员的功能。然而,除此之外,我不清楚它的转换能力。谁能提供一个简明的总结,说明 MDX 可以合理地进行哪些类型的转换?
我不打算让这个问题仅限于我的特定报告挑战。但是,通过描述我的项目,我可以说明一些我感兴趣的转换类型。所以,这里是我正在做的事情的描述:
我需要使用 MDX 创建一些库存和销售报告。我正在使用 Microsoft SQL Server 2008 Analysis Services。数据被组织成三个不同的立方体:现有库存、在途库存和销售。我的报告要求以多种方式转换数据。例如:
1) 我需要使用 4-4-5 日历的规则从“周”属性推断出“月”属性。我相当肯定这可以用 MDX 优雅地完成。
2)我需要从“月份”属性中推断出“日历月份”维度。我相信这可以通过 MDX 来完成,但我不确定是否有一个优雅的解决方案或一个应该避免的有利于架构重新设计的杂乱无章。
3)我需要从“仓库”维度推断出“区域”维度。我没有看到任何证据表明这可以通过 MDX 以一种优雅的方式完成。
4) 我需要将总库存计算为现有库存加上在途库存。从网上搜索,似乎可以查询两个不同的多维数据集,但不鼓励架构重新设计,但水仍然很浑浊。