【发布时间】:2014-02-14 09:38:09
【问题描述】:
我在一个多维数据集中有许多不同计数的度量。我的问题是这些措施也计算空值。我找到了两种消除空值的解决方案:
我已经在数据源视图中为每个度量创建了命名查询,我在其中放置了我需要的列不包含 null [其中列不为 null] 的条件(但这个解决方案并不实用,因为如果您有许多度量,则不需要计算空值,您必须将大量事实表作为命名查询来消除空值)
我在事实表中创建了一个额外的列作为命名计算,我在其中测试了我需要的列是否包含 null 以放置 1 以放置 0(CASE WHEN Column IS NULL THEN 1 ELSE 0) .之后,我在这个附加列上创建了一个最大值度量,并在我需要的列上创建了一个不同计数的度量。最后,我创建了一个计算,我在其中测试了以下内容:IIF([我需要的度量]-[附加列的最大值]
两种解决方案都有效,但我的问题是,是否有比上述两个更简单的解决方案,或者 SSAS 中是否有选项。 如果有人知道,请分享信息。
【问题讨论】:
-
您不能使用 WHERE 子句消除 NULL 值吗?
-
您提出的两种解决方案都是常用的。如果要计算不同值的列是维度的外键,则可以使用 nonempty()。
标签: sql sql-server ssas