我部署了一个SQL SSAS多维数据集,我使用的是基本的计算成员,似乎遇到以下问题..
当我有一个计算成员时:
Case
When ([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST]) is null OR ([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST]) = 0
THEN 0
ELSE [Measures].[NET SALES CAD] / ([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST])
END
我得到了!Excel中我的结果单元格的#Value ..
但是,当计算出的成员是..
[Measures].[NET SALES USD] / ([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST])
删除CASE语句,它按预期工作..这里的问题是,如果我不将它包装在CASE中我得到#NUM!列除以零的值。
知道为什么CASE语句在这个计算成员中不起作用吗?
答案 0 :(得分:0)
我没有检查为什么你的CASE语句不起作用,但是我使用IIF来创建类似的结果来创建适合你的计算成员:
CREATE MEMBER CURRENTCUBE.[Measures].[FOO]
AS IIF(([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST])=0 OR ([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST]) = NULL,
NULL,
[Measures].[NET SALES CAD] / ([Measures].[QTY SHIPPED] + [Measures].[QTY ADJUST])
);