【问题标题】:Cognos Analytics, multiple columns in crosstab but only one row in measureCognos Analytics,交叉表中有多个列,但度量中只有一行
【发布时间】:2020-03-17 12:57:06
【问题描述】:

我有一个问题,在具有多列的交叉表中有多行度量值,而我只想拥有一个。

交叉表如下所示:

                      |-----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        |

因此,度量行仅从网站列生成,而不是从网站和人员列生成。这样我就可以计算跨站点的总量,而不是跨人员。目前,重复行导致总值高于实际值。

有没有办法使用交叉表来实现这一点,或者我是否需要为此用例考虑其他方法(显示站点和人员的第二个列表)。

我在示例中错误地解释了金额列。我有一个包含销售事件的表,金额度量实际上应该是每个站点的销售事件数。所以我想要实现的是一个问题:对于给定类型的销售事件,列出发生这些销售的网站,列出在该网站上工作的人员,并列出所述网站上的销售事件总数。所以基本上我用一些过滤器(type=something)来获取所有的销售事件。这些销售活动有一个发生地点。该站点有零到 n 名员工。所以销售事件和站点之间有一个内部连接,站点和人员表之间有一个外部连接。 SQL 查询返回如下数据:

sales_event_1|site1|James|type1|subtype2
sales_event_2|site2|John|type1|subtype1
sales_event_2|site2|Jones|type1|subtype1
sales_event_3|site2|John|type1|subtype2
sales_event_3|site2|Jones|type1|subtype2
sales_event_4|site3|Jane|type1|subtype1
...

所以交叉表结构如下:

Rows= site|person
Columns= subtype
measure= count (distinct [sales_event_id] for [site])

交叉表看起来像这样:

                      |-----subtype1----|-----subtype2----|-----total----|          
SITE-----|---PERSON---|-----------------|-----------------|--------------|
----------------------|-----------------|-----------------|--------------|
SITE1    |  James     |     35          |     10          |      45      |
SITE2    |  John      |     20          |     14          |      34      |
SITE2    |  Jones     |     20          |     14          |      34      |
SITE3    |  Jane      |     54          |      0          |      54      |
--------------------------|-------------|-----------------|--------------|
TOTAL-----------------|-----------------|-----------------|     133      |

希望对大家有帮助。

【问题讨论】:

    标签: business-intelligence crosstab cognos-11


    【解决方案1】:

    创建一个新的数据项

    total([Sales] for [Site])
    
    • 将其用作交叉表的指标

    • 接下来,点击指标,将属性Group Span设置为[Site]

    【讨论】:

    • 我找不到交叉表的组跨度属性。我确实找到了一份清单。我正在使用 Cognos Analytics 11.0.9。你知道这是否是旧 Report Studios 的财产吗?
    • 对于 11.x,它位于数据部分(数据格式、钻取定义、组跨度)
    • @jfp,找到属性组 span 运气好吗?
    • @jason 不,我没能找到它。当我在交叉表中选择度量时,数据部分仅显示数据格式。
    • 您是否处于锁定模式?您可能需要解锁/锁定并选择指标 作为建议,请先将此列为列表。看看你是否可以在那里找到组跨度。然后转换为交叉表
    【解决方案2】:

    您最好对数据有足够的了解,以认识到您得到了错误的结果。这将有助于您了解该术语是重复计算的。

    在您的情况下,数量事实的粒度是在站点级别。我假设 person 是同一维度中的一个属性(关系事物;不是具有成员、层次结构和级别的事物,尽管这是建立在关系事物的概念之上的(阅读 Kimball))。您的报告试图将查询投射到事实的粒度之下,您会得到重复计算。

    您应该在模型中定义决定因素(如果您使用的是 Framework Manager 包)或列依赖项(如果您使用的是数据模块)。这些设置是为了告诉查询引擎事实粒度以及维度中的哪些对象处于哪个粒度,告诉查询引擎如何在多事实多粒度情况下聚合事实,以及如何处理尝试将查询投射到事实的细节之下。

    因为它会在您的模型中定义,所以您创建的每个报告和普通用户创建的每个报告都可以使用它,这比尝试在您创建的每个报告中创建处理此类情况的处理要好希望您的普通用户知道该做什么,而他们可能不知道。

    您没有设置决定因素,这表明您组织的建模者可能以其他方式让您的团队失望。例如,不处理角色扮演和消除查询路径的歧义。

    【讨论】:

      猜你喜欢
      • 2012-06-13
      • 1970-01-01
      • 2010-10-01
      • 2015-03-04
      • 1970-01-01
      • 2021-06-03
      • 2014-12-15
      • 2015-06-24
      • 2021-08-01
      相关资源
      最近更新 更多