【发布时间】:2011-12-21 10:00:04
【问题描述】:
我想在 SSAS 中编写一个 KPI,它可以返回所有员工年龄的平均值。员工的出生日期在 Dim_Employee 中。我已经阅读了 3 本充满 MDX 日期和时间处理建议的书,但没有一本有效。经过数小时的拼命尝试和错误,我尝试了无数组合来解决问题,但没有成功。
源数据库中的出生日期为 datetime(null)。我尝试的解决方案如下:
VBA!DateDiff("yyyy", now(), [Employee].[BirthDate].CurrentMember.Member_Value)
当然我应该使用[Date].[Date].CurrentMember 而不是now(),但为了简单起见,我使用了这个。
在 Employee 维度中,我创建了一个具有 Date 数据类型的 ValueColumn。当我尝试在 Management Studio 中执行它时,它会返回以下错误:
"Axis0 函数需要一个元组集表达式作为参数。A 使用了字符串或数值表达式。”
当我不使用 Member_Value 时,它会返回 null,而 DateDiff 会返回 -2010。
因为我不负责我要编写此 KPI 的多维数据集的结构,所以我寻找一个根本不需要新的度量、维度的解决方案。 (但是如果不向多维数据集添加新元素就没有解决方案,那么我当然会在给定的多维数据集中提出更改请求)
在这种情况下,解决方案是什么?是否可以在不使用额外度量的情况下编写此 KPI?
【问题讨论】: