簡體   English   中英

僅在先前的度量成員滿足特定條件時顯示行

[英]Show rows only if previous measure member meets certain condition

考慮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函數獲得了上一年的知識 我還用[SellDate]。[Year] .CHILDREN替換了您的[SellDate]。[Year] .MEMBERS。 這將刪除ALL成員,您可能不想將其返回。

警告:盡管Iif是了解如何執行此操作的最簡單方法,但從傳統上講它有點慢(盡管SQL Server 2008和2012版本的性能有所提高)。 這一功能可能還不錯,但是總的來說,您可以使用作用域的腳本替換iif函數,以獲得更好的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM