如果我理解您的要求,您需要 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 月。但它不会为 OR 之后的表达式执行此操作,因为具有 PrevMember 的元组会覆盖 WHERE 子句。