我为自己的类型维变量获得#MULTIVALUE。
常见行为(?):根据我的培训和我读过的所有内容,维度对象的典型行为应该是每列显示一个不同的值(在左侧带标题的表中) )。例如,如果当前上下文是[月]并且四月有两个事件,那么将变量拖到表中应该将上下文扩展到[月]; [事件ID],导致四月的列被拆分为两列,有值(April,Inc 1)和(April,Inc 2)。
不幸的是,这在我的情况下不起作用,我想知道我做错了什么(以及什么)或者是不正当行为/错误。
背景 我有一个数据提供者在事件历史中每次返回一堆维度对象,其中事件将状态更改为“已解决”。事件可能会重新打开几次,然后再次达到“已解决”状态。由于历史记录中缺少“重新打开”状态,如果在其更改历史记录中至少有2个状态为“已解决”的条目,则事件将计为“重新打开”。
重要的对象是:
我的方法: 首先,我计算每个事件的最后解决日期,并使其在每个记录中可用。我将measure [__true_resolved_date]定义为:
= Max([Create Date] In ([Incident ID];[Create Date])) In ([Incident ID])
然后我创建了一个类型维对象的变量[__reopened_incident],只是为了查看表中的所有结果变量(依赖于维对象的常见,分裂行为)。它包含一个IF子句,用于返回满足条件的所有记录的事件ID。
= If ([Create Date] <> [__true_resolved_date]) Then [Incident ID]
为了获得所有重新开启的事件的计数,我只计算了[__reopened_incident]中事件ID的数量,这可以正常工作。
我的问题是,在将此[__reopened_incident]变量拉入表格后,它会在4月份为单个重新打开的事件INC0123显示#MULTIVALUE。
显示的内容(事件名称已更改)
YearMonth | 2015/04 | 2015/05
[__reopened_incident] | #MULTIVALUE |
[__true_resolved_date] | 04-04-2015 | 05-05-2015
注意:“05-05-2015”是5月份单一事件的单一解决日期,而非相关解释
只要我将[创建日期]维度放到表格中,4月份的列就会被拆分:
YearMonth | 2015/04 | 2015/04 | 2015/05
[__reopened_incident] | INC0123 | |
[__true_resolved_date] | 04-04-2015 | 04-04-2015 | 05-05-2015
[Create Date] | 01-01-2014 | 04-04-2015 | 05-05-2015
我期望的是,不必将[创建日期]添加到块中:
YearMonth | 2015/04 | 2015/04 | 2015/05
[__reopened_incident] | INC0123 | |
[__true_resolved_date] | 04-04-2015 | 04-04-2015 | 05-05-2015
在IF子句中使用其他比较,如If ([Create Date] < ToDate("01012015";"ddMMyyyy") ...
完全正常,并将列拆分为两个,一个用于INC0123,一个用于空。
当与If ([Create Date] < _comp_date ...
之类的(虚拟)度量进行比较时,它也有效,[_ comp_date]是度量=[Create Date]
。
如果我将表格的显示选项“避免重复行聚合”设置为True,我会在4月份获得两列,但在[__reopened_incident]的两列中仍然是#MULTIVALUE。
有谁知道为什么会这样?任何提示或想法都表示赞赏。
此致 迈克尔
ps:这只是为了找出,为什么列没有拆分。我不是在寻找另一种方法来确定“重新开放”状态。