MDX对一个维层次结构中的所有值求和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDX对一个维层次结构中的所有值求和相关的知识,希望对你有一定的参考价值。
我是MDX新手。我在Visual Studio Business Intelligence环境中使用Team Foundation Server中的Team System Cube。我的问题听起来很容易,但我不知道解决方案。
1)我有一个具有DateTime数据类型的字段。这个字段的一个维度(Hierarchy By Week)我用它在我的报告中显示我的日历周。现在我有一个第二个字段,它有一个整数数据类型(它是一个度量)。我创建了一些数据集,所以它看一下:
- 第1周:50
- 第2周:34
- 第3周:46
- ...
- 周n:nn
我理解第二个字段中值的分配以及维度上的值的依赖性。我的要求,听起来很简单:我需要所有字段值的SUM,以便它看起来像下表:
- 第1周:200(54 + 34 + 46 + ...)
- 第2周:190
- 第3周:186
如果我试着总结,那就没有变化。
IIF(ISEMPTY([Measures].[RemainingWorkProductBacklogItem]) OR NOT Mid([Work Item].
[PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName,58,10)
<= Format(Now(), "yyyy-MM-dd"), SUM( [Measures].[RemainingWorkProductBacklogItem]),NULL)
(Mid函数只显示实际值,它不应该在这里发挥作用。)
我也试过了YTD函数和sum函数,但是我没有成功,仍然没有变化(它显示为null)。我可以使用任何功能,还是必须在立方体中进行更改?
2)一般的另一个问题:如果我有两个不同维度的两个字段(都是DateTime),可以安排映射吗?例如。
DIMENSION1:
- 第1周:数据
- 第2周:数据
- 第3周:数据
DIMENSION2:
- 第2周:数据
- 第3周:数据
这两个维度都包含第2周和第3周。报告面向Dimension1,也可以显示Dimension2中的数据? (我确定必须是可能的,我在多维数据集选项中搜索但没有找到它)。
非常感谢您的期待
欧根
1)Ytd
只有在标记时间维度时才能正常工作(它必须是整个维度,而不仅仅是维度的某些属性作为时间,并为此维度的所有属性提供正确的类型。类型为维度配置为以及BIDS中Type
属性的属性。然后它只适用于你的立方体的第一个这样的维度。然后你会使用像
Sum(Ytd([Dim Time].[PlannedWeek__HierarchyByWeek].CurrentMember))
要么
Sum(Ytd([Dim Time].[PlannedWeek__HierarchyByWeek].CurrentMember), [Measures].[RemainingWorkProductBacklogItem])
2)你绝对应该在你的多维数据集中有一个时间维度,包括年,季,月,周,日,工作日等属性(你不需要所有这些,但有些)。不要将其与其他属性混合使用。然后参考就会没有任何进一步的努力。我认为将几个事实表链接到此维度没有问题。而且您也可以将Ytd
函数应用于此,因为您只有一个时间维度。
如果你有一个错误的多维数据集设计,MDX会变得非常困难,比使用错误的表设计的SQL要困难得多。
以上是关于MDX对一个维层次结构中的所有值求和的主要内容,如果未能解决你的问题,请参考以下文章