这应该很简单,我只是想不出怎么做。
我正在制作一个计算的度量,它在时间维度中使用PrevMember。如果[时间维度] .CurrentMember没有PrevMember,我想显示NULL。
我只是无法弄清楚要包围这个成员表达式的内容,说“这个成员确实存在吗?”。我对是否存在针对此.PrevMember(即现有或存在)的特定措施不感兴趣。我不想引用度量维度 - 只测试[时间维度] .CurrentMember.PrevMember是否返回维度内的任何成员。
修改 计算出的衡量标准是
([此本期完成] -PriorPeriod)/ PriorPeriod
所以我想抓住没有前期(在时间层次的每个级别)的情况,并强制结果为0而不是得到某种(div / 0?)错误。
答案 0 :(得分:2)
这会产生0,其中CurrentMember在所有级别都没有Previous Member。
WITH MEMBER [Measures].[ThisPeriod] AS 3
MEMBER [Measures].[PriorPeriod] AS 2
MEMBER [Measures].[NewMeasure] AS
IIF([Date].[Calendar].CURRENTMEMBER.PREVMEMBER IS NULL,0,[Measures].[ThisPeriod] - [Measures].[PriorPeriod])
SELECT
{[Measures].[ThisPeriod], [Measures].[PriorPeriod], [Measures].[NewMeasure]} ON COLUMNS
, [Date].[Calendar].MEMBERS ON ROWS
FROM
[Adventure Works]
;
答案 1 :(得分:1)
不确定你是否需要做任何事情 - 如果没有以前的成员,那么无论如何都会返回null吗?
WITH
MEMBER Measures.[CalendarPrevious] AS
[Date].Calendar.CurrentMember.PrevMember.Member_Caption
MEMBER Measures.[CalendarPrevious2] AS
IIF
(
Count({[Date].Calendar.CurrentMember.PrevMember}) = 1
,[Date].Calendar.CurrentMember.PrevMember.Member_Caption
,null
)
SELECT
NON EMPTY
{
Measures.[CalendarPrevious]
,Measures.[CalendarPrevious2]
} ON 0
,[Date].[Calendar].[Date].MEMBERS ON 1
FROM [Adventure Works];
返回:
为了解决div错误,我通常使用这种模式:
MEMBER [Date].[Date - Calendar Month].[All].[DlyAvgGrowth] AS
IIF
(
[Date].[Date - Calendar Month].[All].[PrevMth_DlyAvg] = 0
,NULL
,Divide
(
[Date].[Date - Calendar Month].[All].[CurrentMth_DlyAvg]
-
[Date].[Date - Calendar Month].[All].[PrevMth_DlyAvg]
,[Date].[Date - Calendar Month].[All].[PrevMth_DlyAvg]
)
)