List CognosHTML输出为每列生成多行

List CognosHTML输出为每列生成多行,list,cognos-11,List,Cognos 11,我有一个在列表中有6个查询计算列的报表。每列从同一字段“销售编号”馈送: IF(?pCompany中的“公制1”) 然后 ( 案例 当([Metric]=“Metric 1”)时,则 (计数(针对[公制]、[类别]的不同[销售编号]) 结束 ) 其他的 (0) 这些列中的每一列都将详细信息和摘要聚合设置为None。计算进行得很顺利。但是,报告正在为包含数据的列生成每一行。如下图所示: 我尝试将详细信息和摘要聚合更改为Default,Total,但这些选项将整个列值添加到单个单元格中,并且不一致

我有一个在列表中有6个查询计算列的报表。每列从同一字段“销售编号”馈送:

IF(?pCompany中的“公制1”)
然后
(
案例
当([Metric]=“Metric 1”)时,则
(计数(针对[公制]、[类别]的不同[销售编号])
结束
)
其他的
(0)

这些列中的每一列都将详细信息和摘要聚合设置为
None
。计算进行得很顺利。但是,报告正在为包含数据的列生成每一行。如下图所示:

我尝试将详细信息和摘要聚合更改为
Default,Total
,但这些选项将整个列值添加到单个单元格中,并且不一致。 尝试对“类别”字段进行分区和分组,但这只是对类别名称进行分组,仍然重复每个类别的行数


您知道如何将每个类别的输出放在一行中吗?我使用的是Cognos 11.0.11版本。

看起来像一个交叉表。尝试将查询项简化为:

count( distinct [Sale Number] FOR  [Metric], [Category] )
…并使用交叉表


或者,您可以使用[Category]、[Metric]和count(distinct[Sale Number])将这部分逻辑分解为一个单独的查询,然后将其与其余数据连接起来。这将使您能够在交叉表中使用它,或者为“metric#”列创建一个更简单的表达式。

我想我只是幸运地找到了一个解决方案。更新查询以使用
运行计数
而不是
计数

IF( 'Metric 1' IN ?pCompany?)
THEN
(
CASE
WHEN ( [Metric] = 'Metric 1' ) THEN 
( running-count( distinct [Sale Number] FOR  [Metric], [Category] ))
END
)
ELSE
( 0 )
并将
详细信息聚合
更改为
独立计数
,而
摘要聚合
设置为


获取每个类别的单行输出。当我仅尝试使用
countdistinct
运行Count
时,它不起作用。它必须是两者的结合。

我不能使用交叉表。要做的计算很少,交叉表不支持它们。如果我只需要这个,那么你是对的,交叉表是一个完美的选择。而且,查询需要像这样,因为只有在提示中选择了该度量时,我才需要计算