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
我做交叉表:
列:Var B
行:Var C
"Values" : 总和(数字)
- 部分:Var A
所以我有:
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" 中的行标题和列标题。这确保将返回所有可能的行和列,即使没有数据与之关联。"
执行时间非常好
首先,我是法国人,很抱歉我的英语不好。
在 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
我做交叉表:
列:Var B
行:Var C
"Values" : 总和(数字)
- 部分:Var A
所以我有:
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" 中的行标题和列标题。这确保将返回所有可能的行和列,即使没有数据与之关联。"
执行时间非常好