0

我想过滤超过一定数量的账户余额,比如 1,000,只显示在选定时间超过 1,000 的账户,并且与第二个选定时间相比已被删除。因此,如果“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

以下查询将为每个 [Measures].[Amount] 返回 [Measures].[Amount],其中 6 月份的 [Measures].[Committed Amt] 低于 1000 且 7 月份高于 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],[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])

在结果中,您将在 7 月获得承诺金额在 6 月 > 1000 并且在 7 月 < 1000 的工具的金额(如果要更改此金额,请更改 where 子句)。

于 2012-08-01T21:48:43.963 回答