无日期维度中的 SSAS 日期字段

Posted

技术标签:

【中文标题】无日期维度中的 SSAS 日期字段【英文标题】:SSAS Date Field in None Date Dimension 【发布时间】:2014-02-13 10:15:40 【问题描述】:

我在尝试在 excel 2010 数据透视表中过滤来自 Cube 源的日期属性时遇到问题。

我的问题是我在 NONE 日期维度中有日期属性我的示例是具有一组日期属性的资产维度,例如:

购买日期

售出日期

修复日期

有没有办法将这些属性设置为日期类型,以便数据透视表直接识别它们并允许使用日期过滤器?

或者我是否必须为每个属性创建一个日期维度,并且用户必须选择他想要通过哪个维度来切片数据

【问题讨论】:

我认为无论维度是否标记为日期,都无法将属性成员获取为日期。您可以使用 [Asset].[Bought date].CurrentMember.Properties('Key0', typed) 之类的表达式将成员键作为 MDX 表达式中的日期来访问。但我认为您不能在 Excel 等客户端工具中使用它来使用日期过滤器。 hmm 到目前为止看起来是这样,我通过使用标签字段过滤器(如介于和大于之间)将日期时间属性的值列设置为自身,发现了一些工作。但我现在似乎无法编辑属性的格式,因为 Excel 似乎还需要日期格式以允许过滤工作并添加名称列会破坏它。到目前为止非常烦人的过程 我在 MSDN 上评论了你的帖子,但我今天发现了一些新的东西:AdventureWorks 演示立方体显示了同样的问题。当您使用 Date Dim 时,Excel 包括日期过滤器。但是一些非日期维度包括日期属性(例如,促销具有开始日期和结束日期),当您将它们包含在 Excel 数据透视表中时,它们被视为字符串而不是日期。您没有日期过滤器,如果您对它们进行排序,它们会按字母顺序排序。 【参考方案1】:

一种选择是向多维数据集添加一个额外的日期“角色扮演”维度(例如 DimAssetBoughtDate),并通过资产维度使用引用关系将其挂在事实表上。这不仅为您提供了基于日期的过滤,还为您提供了所有内置的层次结构。另外,日期暗淡通常非常小,因此实现这种关系应该不是问题。

注意:您可能需要向 DSV 中的资产维度添加计算成员,以将日期值(例如 AssetBoughtDate 3/12/2015)转换为日期键值(例如 AssetBoughtDateKey 20150312),以便正确添加新的 DimAssetBoughtDate。

【讨论】:

以上是关于无日期维度中的 SSAS 日期字段的主要内容,如果未能解决你的问题,请参考以下文章

SSAS - 日期维度将错误的日期与层次结构联系起来

SSAS - 日期维度在不合适的地方显示未来值

如何定义维度在 ssas 中使用的连接

日期维度和累积月份

SSAS MDX - 根据其他两个维度从一个维度中选择

基于链接到维度表之一的事实表中的键添加新维度