考虑 MDX 中的某些查询
SELECT NON EMPTY {[Measures].[Income]} ON COLUMNS,
{
SellDate.[year].Members
} ON ROWS
FROM [HD Kawiarnia]
显示公司每年的收入。问题是如何只显示今年的收入高于前一年?
WITH MEMBER [Measures].[MyMeasure] as
IIF(
([Measures].[Income], [SellDate].[Year].currentmember)
<= ([Measures].[Income], [SellDate].[Year].CURRENTMEMBER.PREVMEMBER)
, NULL,
[Measures].[Income])
SELECT NON EMPTY {[Measures].[Income]} on COLUMNS
NON EMPTY {[SellDate].[Year].CHILDREN} on ROWS
FROM
[HD Kawiarnia]
我使用 IIF 函数来计算子句,如果上一年的收入更高,则返回 null。我通过使用PREVMEMBER函数获得了前一年。我还替换了你的[销售日期]。[年]。具有 [销售日期] 的成员。[年]。孩子。 这将删除您可能不希望返回的 ALL 成员。
注意:尽管 Iif 是理解如何执行此操作的最简单方法,但传统上它有点慢(尽管 SQL Server 的 2008 和 2012 版本提高了性能)。这个可能不会太糟糕,但一般来说,您可以使用 scope 将 iif 函数替换为脚本以获得更好的性能。