IBM Cognos Analytics 从数据集中选择前 2 个
IBM Cognos Analytics Selecting top 2 from a dataset
我正在制作一份报告,我需要本周和前一周的数据,并比较这两者。我的数据中有一周列,这是交易,所以我的数据看起来像:
Amount - Week
13 - 01
19 - 01
11 - 02
10 - 02
13 - 02
12 - 03
18 - 03
15 - 04
我想这是最近两周的结果和总金额:
Week 03: 30
Week 04: 15
现在很容易获得最近一周,只是最大值(报告周),但是当我想要 select 第二大时我就卡住了。
我尝试做一个过滤器,基本上是“最大(当周 = 最大(周)然后 null 其他周)”,但要么我没有弄清楚语法,要么我这个方法不起作用.
我厌倦的其他选择是 rank() 功能,然后是 selects 在 (1, 2) 中排名的查询,但出于某种原因我无法使这种方法起作用,只能得到错误
The function "to_char" is being used for local processing but is not available as a built-in function, or at least one of its parameters is not supported.
我认为这与聚合有关(每周出现多个记录)。无论如何,我有点卡住了,错误消息没有给我任何线索。非常感谢您的帮助!
RANK
应该可以正常工作,但如果您尝试让 Cognos 在一个地方完成所有工作,它可能无法正常工作。我想我可以过滤排名数据项并将应用程序 属性 设置为自动聚合后。但是我得到了奇怪的结果。
与其试图创建一个复杂的解决方案,不如尝试将问题分解成更小、更简单的部分。
定义查询 1
数据项:
Week = [命名空间].[查询主题].[Week]
Amount = [namespace].[query subject].[Amount] 详细聚合设置为 Total
Rank = rank([命名空间].[查询主题].[周])
创建 Query2 并将 Query1 设置为其源。
数据项:
[查询 1].[周]
[查询 1].[金额]
详细过滤器:
[查询 1].[排名] <= 2
使用 Query2 作为列表的来源。
我正在制作一份报告,我需要本周和前一周的数据,并比较这两者。我的数据中有一周列,这是交易,所以我的数据看起来像:
Amount - Week
13 - 01
19 - 01
11 - 02
10 - 02
13 - 02
12 - 03
18 - 03
15 - 04
我想这是最近两周的结果和总金额:
Week 03: 30
Week 04: 15
现在很容易获得最近一周,只是最大值(报告周),但是当我想要 select 第二大时我就卡住了。
我尝试做一个过滤器,基本上是“最大(当周 = 最大(周)然后 null 其他周)”,但要么我没有弄清楚语法,要么我这个方法不起作用.
我厌倦的其他选择是 rank() 功能,然后是 selects 在 (1, 2) 中排名的查询,但出于某种原因我无法使这种方法起作用,只能得到错误
The function "to_char" is being used for local processing but is not available as a built-in function, or at least one of its parameters is not supported.
我认为这与聚合有关(每周出现多个记录)。无论如何,我有点卡住了,错误消息没有给我任何线索。非常感谢您的帮助!
RANK
应该可以正常工作,但如果您尝试让 Cognos 在一个地方完成所有工作,它可能无法正常工作。我想我可以过滤排名数据项并将应用程序 属性 设置为自动聚合后。但是我得到了奇怪的结果。
与其试图创建一个复杂的解决方案,不如尝试将问题分解成更小、更简单的部分。
定义查询 1
数据项:
Week = [命名空间].[查询主题].[Week]
Amount = [namespace].[query subject].[Amount] 详细聚合设置为 Total
Rank = rank([命名空间].[查询主题].[周])
创建 Query2 并将 Query1 设置为其源。
数据项:
[查询 1].[周]
[查询 1].[金额]
详细过滤器:
[查询 1].[排名] <= 2
使用 Query2 作为列表的来源。