我是MDX新手。我在Team Foundation Server中使用Team System Cube Visual Studio商业智能环境。我的问题听起来很简单,但我不知道解决方案。
1)我有一个具有DateTime数据类型的字段。这个字段的一个维度(Hierarchy By Week)我用它来显示我的日历周 在我的报告中。现在我有一个第二个字段,它有一个整数数据类型(它是一个度量)。我创建了一些数据集,所以现在看一下:
我理解第二个字段中值的分配以及维度上值的依赖性。我的要求,听起来很简单:我需要所有字段值的SUM,以便它看起来 如下表所示:
如果我总结一下,没有任何变化。
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),可以安排映射吗? E.G。
Dimension1:
DIMENSION2:
两个维度都包含第2周和第3周。报告面向Dimension1,也可以显示Dimension2的数据吗? (我确定必须是可能的,我在多维数据集选项中搜索但没有找到它。)
非常感谢您的期待
欧根
答案 0 :(得分:2)
1)Ytd
只有在标记时间维度时才能正常工作(它必须是整个维度,而不仅仅是维度的某些属性作为时间,并为此维度的所有属性提供正确的类型。 type是为维度配置的,以及在BIDS中具有Type
属性的属性。然后它只适用于你的多维数据集的第一个这样的维度。然后你会使用像
Sum(Ytd([Dim Time].[PlannedWeek__HierarchyByWeek].CurrentMember))
或
Sum(Ytd([Dim Time].[PlannedWeek__HierarchyByWeek].CurrentMember), [Measures].[RemainingWorkProductBacklogItem])
2)你绝对应该在你的多维数据集中有一个时间维度,包括年,季,月,周,日,工作日等属性(你不需要所有这些,但有些)。不要将其与其他属性混合使用。然后参考就会没有任何进一步的努力。我认为将几个事实表链接到此维度没有问题。而且您也可以将Ytd
函数应用于此,因为您只有一个时间维度。
如果您的多维数据集设计错误,MDX会变得非常困难,比使用错误的表格设计的SQL要困难得多。