[英]SQL Cube Calculation not working as intended in a CASE statement?
我已經部署了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語句在此計算所得成員中不起作用嗎?
我還沒有查看為什么您的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])
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.