0

特定の金額、たとえば 1,000 を超える口座残高をフィルター処理し、選択した時間に 1,000 を超えていて、2 番目に選択した時間と比較して削除された口座のみを表示したいと考えています。したがって、選択した月の '6 月' に 'Amy' が 1,000 を超えていて、現在彼女の残高が 1,000 を下回っている場合、新しい残高で彼女をリストに表示したいと思います。

    select [Measures].[Amount] on 0,
      FILTER( [Instrument].[Account Num].MEMBERS, [Measures].[Committed Amt]>1000) 
    ON 1  
    from [TEST]
   where
except({[Time].[Calendar Year].[Month].&[06]&[2012]}, 
   {[Time].[Calendar Year].  [Month].&[07]&[2012]});

上記のコードを使用して、特定の金額を超える残高をフィルタリングできます。削除されたアカウントだけを表示することはできません。これは、EXCEPT 関数を使用して実行しようとしていることです。何か案は?これは、2008 分析サーバーを使用した MDX コードです。

4

2 に答える 2

0

次のクエリは、6 月の [Measures].[Committed Amt] が 1000 未満で、7 月の [Committed Amt] が 1000 を超えた [Measures].[Amount] ごとに [Measures].[Amount] を返します。

SELECT
[Measures].[Amount] ON 0
,Filter
( [Instrument].[Account Num].MEMBERS  ,
  ([Measures].[Committed Amt],[Time].[Calendar Year].[Month].&[06]&[2012]) > 1000
AND
  ([Measures].[Committed Amt],[Time].[Calendar Year].[Month].&[07]&[2012]) > 1000
) ON 1
FROM [TEST]
于 2012-08-03T20:25:18.353 に答える
0

July を Where 句に入れ、フィルターで次の条件を使用するだけです。

([Measures].[Committed Amt], [Time].[Calendar Year].[Month].&[06]&[2012]) > 1000 AND [Measures].[Committed Amt] < 1000

クエリは次のようになります。

SELECT [Measures].[Amount] ON 0,
FILTER( [Instrument].[Account Num].MEMBERS, ([Measures].[Committed Amt], [Time].[Calendar Year].[Month].&[06]&[2012]) > 1000 AND ([Measures].[Committed Amt] < 1000, [Time].[Calendar Year].[Month].&[07]&[2012])) ON 1  
FROM [TEST]
WHERE ([Time].[Calendar Year].[Month].&[07]&[2012])

その結果、コミット額が 6 月に 1000 を超え、7 月に 1000 未満の商品の 7 月の金額が表示されます (これを変更する場合は、where 句を変更します)。

于 2012-08-01T21:48:43.963 に答える