考虑MDX中的某些查询
SELECT NON EMPTY {[Measures].[Income]} ON COLUMNS,
{
SellDate.[year].Members
} ON ROWS
FROM [HD Kawiarnia]
显示每年公司的收入。问题是如何只显示今年的收入高于去年的收入?
答案 0 :(得分:1)
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函数。我还用[SellDate]替换了你的[SellDate]。[Year] .MEMBERS。[Year] .CHILDREN。这将删除您可能不想返回的ALL成员。
提醒:尽管Iif是了解如何执行此操作的最简单方法,但它传统上有点慢(尽管在2008和2012版本的SQL Server中性能有所提高)。这个可能不会太糟糕,但一般来说,您可以替换iif functions with scripting using scope以获得更好的性能。