簡體   English   中英

SQL多維數據集計算不能按CASE語句的預期運行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM