我遇到一个问题,即在具有多列的交叉表中,有多行测量值我只想拥有一个。
交叉表如下:
|-----Amount-----|
SITE-----|---PERSON---|----------------|
----------------------|----------------|
SITE1 | James | 45 |
SITE2 | John | 34 |
SITE2 | Jones | 34 |
SITE3 | Jane | 54 |
----------------------|----------------|
TOTAL-----------------| 167 |
因此,第一列是网站,网站上的第二个人(请注意site2有两个人)。结构得到简化,但是您明白了。
我想要的是以下结构:
|-----Amount-----|
SITE-----|---PERSON---|----------------|
----------------------|----------------|
SITE1 | James | 45 |
SITE2 | John | 34 |
SITE2 | Jones | |
SITE3 | Jane | 54 |
----------------------|----------------|
TOTAL-----------------| 133 |
因此,度量值行仅从“站点”列生成,而不是从“站点”和“人员”列生成。这样,我可以计算跨站点(而不是跨人员)的总金额。当前,重复的行导致总值高于实际值。
有没有一种方法可以使用交叉表来实现这一目标,或者我是否需要针对此用例考虑其他方法(用于显示站点和人员的第二个列表)。
答案 0 :(得分:0)
创建一个新的数据项
SUBSTITUTE
将其用作交叉表的指标
下一步,单击指标,并将属性 Group Span 设置为[Site]
答案 1 :(得分:0)
最好对数据有足够的了解,以便识别出错误的结果。这将帮助您知道该术语是重复计算。
在您的情况下,金额事实的细节是在站点级别上。我假设人是同一维度的属性(关系事物;不是具有成员,层次结构和级别的事物,尽管它是建立在关系事物的概念之上的(请阅读Kimball))。您的报告试图将查询投影到事实的细微之处之下,您会得到重复计算。
您应该在模型中定义行列式(如果使用Framework Manager程序包)或列依赖项(如果使用数据模块)。这些都是为了告诉查询引擎事实粒度以及维度中的哪个对象位于哪个粒度,告诉查询引擎如何在多事实多粒度情况下汇总事实以及如何处理在事实的细节下面进行查询。
因为它将在模型中定义,所以它可用于您创建的每个报表以及普通用户创建的每个报表,这比尝试在创建和创建的每个报表中为此类情况创建处理要好。希望普通用户知道该怎么做,而他们可能不会。
您没有确定因素的事实表明您组织的建模者可能以其他方式让您的团队失望。例如,不处理角色扮演和消除查询路径的歧义。