在 Framework Manager Cognos 的同一行中显示所有数据

Show all data in the same row in Framework Manager Cognos

我正在使用 IBM Cognos Framework Manager/Report 作者 10.2.1

两行的数据如下所示:

**Case ID    Activity              Date Updated**

11111        Bill Paid             09/25/2015
11111        Received Bill         08/01/2015

在我的报告中,我需要针对相同的确切案例显示以下内容:

**Case ID    LAST Activity     LATEST ACTIVITY      Date Updated**

11111        Received Bill     Bill Paid           09/25/2015

Received Paid需要在同一行显示最新的 日期为 09/25/2015 的信息。

不确定如何在报告甚至框架模型中执行此操作?

当您经常遇到这种类型的数据建模时,这是一个棘手但值得提出的问题。我可以在报告中给你一个解决方案

您需要计算的两位是每个 ID 的最大值 'Date Updated' 和每个 ID 的第二个最大值 'Date Updated'。

使用以下表达式创建名为 'Max Date' 的新数据项:

maximum([Date Updated] for [Case ID])

使用以下表达式创建另一个名为 'Next Max Date' 的新数据项:

maximum(
CASE 
WHEN [Date Updated] <> [Max Date] THEN [Date Updated] 
ELSE null 
END
for [Case ID])

使用以下表达式创建另一个名为 'Latest Activity' 的数据项:

CASE 
WHEN [Date Updated] = [Max Date] THEN [Activity] 
ELSE null
END

使用以下表达式创建另一个名为 'LAST Activity' 的数据项:

CASE 
WHEN [Date Update] = [Next Max Date] THEN [Activity]
ELSE null
END

将 'Latest Activity' 和 'LAST Activity' 的 'Aggregate Function' 属性 设置为 'Maximum'。

总结

我们计算每个案例 ID 的最大日期。接下来,我们使用 CASE 语句排除与最大日期对应的行,然后为所有其他行的每个案例 ID 获取最大值。我们创建一个新的数据项,如果日期与最大日期匹配,它将吐出 Activity ,否则会发出 null 。我们创建第二个数据项,如果日期与最大日期的下一个匹配,则输出 Activity ,否则输出 null。我们将两者的聚合函数设置为 'Maximum',其作用是通过自动分组和汇总过程去除这些列中的任何空值。这给我们留下了每行的两个新列,显示最新的 activity 和之前的一个。