我想在 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 函数需要参数的元组集表达式。使用了字符串或数字表达式。”
当我不使用 Member_Value 时,它会返回 null,而 DateDiff 会返回-2010
.
因为我不负责要编写此 KPI 的多维数据集的结构,所以我搜索了一个根本不需要新的度量、维度的解决方案。(但是,如果不向多维数据集添加新元素就没有解决方案,那么我当然会在给定的多维数据集中提出更改请求)
这种情况下的解决方案是什么?是否可以在不使用其他度量的情况下编写此 KPI?