Cognos Report:带部分的交叉表,如何显示所有列?

Cognos Report : Crosstab with section, how to display all column?

首先,我是法国人,很抱歉我的英语不好。

在 report studio 中,我将交叉表与部分一起使用,但对于每个部分,我想显示所有列(列来自我用于 croostab 的变量的不同值)。

我觉得举个例子会更好:

------------------------来源

变量A |变种 B |变种 C |数量 |


A1 | B1 | C1 | 120

A1 | B1 | C2 | 130

A1 | B2 | C1 | 10

A2 | B1 | C1 | 17

A2 | B1 | C2 | 16

我做交叉表:

所以我有:

Section: Var A = A1

   |   B1    |    B2

C1 | 120 | 10

C2 | 130 | 0

和:

Section: Var A = A2

 |    B1     

C1 | 17

C2 | 16

但我想要:

Section: Var A = A2

  |     B1   |    B2

C1 | 17 | 0

C2 | 16 | 0

我不知道如何正确地做到这一点(我找到了一种方法,它需要隔离每个变量并交叉它们自己,但它又长又丑陋)

此致

我在别的论坛找到了解决办法(我找了很久,但我没有使用正确的关键字):

"http://www-01.ibm.com/support/docview.wss?uid=swg21341708

标题:如果列或行不包含数据,则交叉表中缺少这些列或行

问题(摘要)

如果交叉表的行或列不包含数据,则不会显示在交叉表中。本文档描述了一种强制显示所有列和行的方法,无论它们是否包含数据。

原因

交叉表报表中的列标题和行标题由查询的结果集决定。

环境

关系数据源。

解决问题

为 column/row 标题和数据创建单独的查询。使用 1..1 -> 0..n 关系连接这两个查询,这样即使没有数据的列和行也会在结果集中表示。

请参阅为 GO Sales and Retailers 样本包编写的附加示例。这是一个针对 2004 年数据过滤的简单交叉表。 2004 年没有登山装备的数据。交叉表使用描述的连接查询,并且确实包含登山装备的空白行。

步骤:以下步骤假定行或列都可能缺失。如果您担心 rows-only 或 columns-only,您可以跳过步骤 1-2,并在步骤 3 中只创建行或列数据。 1)创建一个"Column Query",只包含列信息和一个值为1的虚拟数据项。在附加的例子中,它被命名为"Years"

2) 创建一个"Row Query",只包含行信息和一个值为1的虚拟数据项。在附加的示例中,它被命名为"Product Lines"

3) 创建一个 "Dimension Query" 查询,将第 1 步和第 2 步中的查询加入 dummy。这需要将查询的允许外部连接 属性 设置为允许。这将创建一个交叉连接,其中包括所有可能的行和列组合

4) 创建包含交叉表数据的第四个查询。这与普通交叉表报表相同。

5) 加入来自步骤 3 和 4 的查询,分别使用 1..1 和 0..n 的基数。将数据项拖入此新查询时,请确保拖入 "Dimension Query" 中的行标题和列标题。这确保将返回所有可能的行和列,即使没有数据与之关联。"

执行时间非常好