我正在使用IBM Cognos Framework Manager / Report Author 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
收到的付费需要显示在显示最新信息的同一行中 2015年9月25日日期的信息。
不确定如何在报告甚至框架模型中执行此操作?
答案 0 :(得分:1)
这是一个棘手的问题,但是当您经常遇到这种类型的数据建模时,这是一个值得回答的问题。我可以在报告中给你一个解决方案。
您需要弄清楚的两个比特是每个ID的最大“更新日期”,以及每个ID的最大“更新日期”的下一个。
使用以下表达式创建一个名为“Max Date”的新数据项:
maximum([Date Updated] for [Case ID])
使用以下表达式创建另一个名为“下一个最大日期”的新数据项:
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
将“最新活动”和“最后活动”的“聚合函数”属性设置为“最大值”。
<强>摘要强>
我们计算每个案例ID的最大日期。接下来,我们使用CASE语句排除与最大日期对应的行,然后为所有其他行的每个Case ID获取最大值。我们创建一个新的数据项,如果日期与最大日期匹配,则会吐出活动,否则发出null。我们创建第二个数据项,如果日期与最大日期的下一个匹配,则输出Activity,否则吐出null。我们将两者的聚合函数设置为“最大值”,这样可以通过自动组和汇总过程消除这些列中的任何空值。这使我们每行留下两个新列,显示最新的活动和之前的活动。