2017-02-10 6 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は行ごとに機能します。 Amountのような尺度をiif([金額] <,0,0、[金額])を追加する必要があります。それでも、以下のコードを試してみてください。

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