私があなたの要件を理解している場合、where 句の月、または where 句の合計が 100K を超える月の前の月の行が必要です。where 句は、Total メジャーに表示される値に影響するため、前月の値も表示したい場合は where 句に残すことはできません。行が 3 月のものか 2 月のものかを確認するには、次のように行に含める必要があります。
select
({ [Measures].[Total]}) on columns,
non empty
[Dim1].[h1].allmembers
* [Dim1].[h2].allmembers
* [Dim1].[h3].allmembers
* [1 Date - Loss Date].[Date].[Year].allmembers
* {[1 Date - Month End].[Month End Date].[Month].&[20120228],[1 Date - Month End].[Month End Date].[Month].&[20120331]}
having [Measures].Total>100000 on rows
from [Monthly Summary]
パラメータから月を取得しているため、前の月を取得する一般的な方法を探していますか? もしそうなら、あなたはこのようなことをすることができます:
select
({ [Measures].[Total]}) on columns,
non empty
[Dim1].[h1].allmembers
* [Dim1].[h2].allmembers
* [Dim1].[h3].allmembers
* [1 Date - Loss Date].[Date].[Year].allmembers
* {[1 Date - Month End].[Month End Date].[Month].&[20120331].PrevMember,[1 Date - Month End].[Month End Date].[Month].&[20120331]}
having [Measures].Total>100000 on rows
from [Monthly Summary]
更新: 現在の月または前の月のいずれかが 100,000 より大きい場合に現在の値を取得するには、現在の月の合計に関係なく、次のようにします。
select
({ [Measures].[Total]}) on columns,
non empty
[Dim1].[h1].allmembers
* [Dim1].[h2].allmembers
* [Dim1].[h3].allmembers
* [1 Date - Loss Date].[Date].[Year].allmembers
having [Measures].Total>100000 or ([1 Date - Month End].[Month End Date].[Month].&[20120331].PrevMember, [Measures].Total>100000) on rows
from [Monthly Summary]
where [1 Date - Month End].[Month End Date].[Month].&[20120331]
HAVING 句では、WHERE 句をメジャーと組み合わせて、指定された月 (2012 年 3 月) の基準を満たさない行を除外します。