2017-02-10 48 views
0

我對MDX非常陌生,所以我希望對MDX專家來說這是一個簡單的問題。我有以下表達式SUM(PeriodsToDate([Accounting Date]。[(All)]),[Measures]。[Amount]),它按預期工作。我需要添加一個過濾器或IIF語句基本上執行以下操作:MDX和PeriodsToDate

IF 
    SUM(PeriodsToDate([Accounting Date].[(All)]),[Measures].[Amount]) < 0 
    Then 0 
Else 
    SUM(PeriodsToDate([Accounting Date].[(All)]),[Measures].[Amount]) 
+0

目前尚不清楚您希望IIF的運行階段。排除SUM中小於0的所有單個值?彙總度量值(例如,某個其他維度的每個成員)並將<0值轉換爲0?或者彙總度量,給出一個單一的值,然後應用「用0替換0」。有了更多的細節,建議一個解決方案會更容易。此外,該表達式是用來定義一個立方體計算的度量,還是一個查詢級別的計算度量? – SebTHU

回答

0

恐怕是不可能做預先彙總數據。 MDX IIF函數適用於每個成員,SQL IIF每行工作。您必須添加諸如金額等度量,但需要添加iif([Amount] < 0,0,[Amount])。您也可以嘗試下面的代碼,但是,我懷疑它的結果是否正確:

SUM(
    NULL:[Accounting Date].[Calendar].CurrentMember, 
    IIF(
     [Measures].[Amount] < 0, 
     NULL, 
     [Measures].[Amount] 
    ) 
)