[英]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.