【发布时间】:2016-01-15 18:50:00
【问题描述】:
我正在尝试使用 MDX 创建一个计算成员来计算平均值。我有两个衡量标准,[高中 GPA] 和 [有高中 GPA]。如果 [High School GPA] 为数字,则 [Has High School GPA] 设置为 1,否则为 0。因此,在过去,以下计算成员工作得很好。
case
when [MEASURES].[Has High School GPA] is null
or [MEASURES].[Has High School GPA] = 0
then null
else
[MEASURES].[High School GPA] / [MEASURES].[Has High School GPA]
end
现在,我需要将 [High School GPA] = 0.00 从我的平均计算中排除,即使 [Has High School GPA] 将等于 1。所以,我修改了我的脚本如下。
case
when [MEASURES].[Has High School GPA] IS null
or [MEASURES].[Has High School GPA] = 0
or [MEASURES].[High School GPA] = 0
then null
else
[MEASURES].[High School GPA] / [MEASURES].[Has High School GPA]
end
但是,我的平均成绩仍然包括 [高中 GPA] = 0.00 的记录。关于如何解决此问题的任何建议?
【问题讨论】:
-
在 SQL 数据库中,这些 GPA 值是 0 还是 null?
-
它们既可以为零也可以为空,我想忽略两者。我们将要求企业在源系统上解决此问题,以便我们以后看不到任何 0。但我需要一个临时的 MDX 解决方案 :-)
-
如果 SQL 数据库中 GPA 值为 null,则 [Has High School GPA] 将设置为 0。但是,如果 GPA 值为 0,则 [Has High School GPA] 设置为1 影响平均值。