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