这与Cognos Calculate Variance Crosstab (Relational)非常相似,但我的数据源是维度 .
我有一个简单的交叉表,如下所示:
| 04-13-2013 | 04-13-2014
---------------------------------------
Sold | 75 | 50
Purchased | 10 | 15
Repaired | 33 | 44
-
过滤器:用户选择1个日期,然后我们将该日期加1年前 .
-
维度:日期是YQMD层次结构中的日期级别 .
-
措施:我们正在从Measure Dimension中展示各种措施 .
-
已售出
-
已购买
-
修复了
这是报告工作室的样子:
| <#Day#> | <#Day#>
---------------------------------------
<#Sold#> | <#1234#> | <#1234#>
<#Purchased#> | <#1234#> | <#1234#>
<#Repaired#> | <#1234#> | <#1234#>
我希望能够将方差计算为每个度量的两个时间段之间的百分比 .
| 04-13-2013 | 04-13-2014 | Var. %
-----------------------------------------------
Sold | 75 | 50 | -33%
Purchased | 10 | 15 | 50%
Repaired | 33 | 44 | 33%
我在<#Day#>的右边添加了一个Query Expression,如下所示,但是我无法使方差计算起作用 .
| <#Day#> | <#Variance#>
---------------------------------------
<#Sold#> | <#1234#> | <#1234#>
<#Purchased#> | <#1234#> | <#1234#>
<#Repaired#> | <#1234#> | <#1234#>
这些是我试过的表达式和我得到的结果:
硬编码的表达式有效,但仅适用于该1个度量:
total(case when [date] = 2014-04-13 then [Sold] end)
/
total(case when [date] = 2013-04-13 then [Sold] end)
-1
我认为 CurrentMember 和 PrevMember 可能有效,但它会产生空白单元格:
CurrentMember( [YQMD Hierarchy] )
/
prevMember(CurrentMember([YQMD Hierarchy]))
-1
我认为这是因为 prevMember 产生了空白 .
prevMember(CurrentMember([YQMD Hierarchy]))
仅使用 CurrentMember 总共提供两列:
CurrentMember([YQMD Hierarchy])
我可以使用什么表达式来利用我的维度模型并添加具有%方差的列?
这些是我用于研究的页面:
1 回答
我希望有更好的方法来做到这一点 . 我终于找到了一个描述这个问题的方法的资源 . 使用 tail 和 head 函数,我们可以到达第一个和最后一个周期,从而计算%方差 .
这个想法来自IBM Cognos BI – Using Dimensional Functions to Determine Current Period .