基于计算的维成员的SSAS分区片

时间:2019-04-16 15:21:21

标签: sql-server ssas mdx partitioning

我有一个SSAS多维数据集,其中数据按当年,去年和去年之前进行分区。我想在分区上设置分区切片属性,但是我无法使其正确处理。

查看SSAS Partition Slice Expression之后,我定义了一个计算所得的成员input(),并将其用作切片表达式。定义为:

[Date].[Year].[All].[CurrentYear]

当我处理多维数据集时,它失败并显示错误,“违反了对分区片的限制。”我检查了构建切片的查询是否正确,并且当我使用切片表达式StrToMember("[Date].[Year].&[" + Format(now(), "yyyy") + "]") 时,该查询可以正常工作。

我在这里做错了什么吗?还是我试图做的事情是不可能的?

1 个答案:

答案 0 :(得分:2)

SSAS分区片的表达非常严格。您不能使用动态MDX功能。而且,您不能指定无限范围,例如{NULL:[Date].[Calendar].[Dec, 2008]}。 您必须明确指定切片表达式,并在需要时枚举其所有成员。
不幸的是,MS Documentation不完整。我会检查您是否真的需要切片? SSAS本身可以很好地自动检测处理中的切片。
另一种可能的方法-在提到的层次结构上定义静态维成员,并在分区切片表达式中使用它。使用相同的层次结构很重要。