获取一个数据集中不存在于另一个数据集中的行的不同计数,COGNOS BI 报告构建
Getting the distinct count of rows that are in one dataset which dont exist in the other dataset, COGNOS BI report building
我正在处理半加性数据,即账户余额。我正在尝试创建一个报告,其中 select 一个时间段,从这个时间段开始,我对该时间段开始和结束时的帐户状态感兴趣。有了这两个 'datasets' 我想做以下事情:
- 获取存在于第一个数据集中但不存在于最后一个数据集中的帐户 ID 的不同计数
- 获取最后一个数据集中存在的帐户 ID 的不同计数,但不是第一个
Cognos 内置了这个 except/intersect 功能,但我对使用它有点担心。担心它会很快变得非常混乱。创建我在这里描述的内容时,最佳做法是什么?
使用 window 函数可能会有更优雅的解决方案,但我喜欢使用许多简单的部分,以便下一个人有希望支持我所做的事情。
我认为您需要 4 个查询:
查询 1
数据项:AccountId
过滤器:[日期] =?开始日期? (+ 根据需要)
查询2
数据项:AccountId
过滤器:[date] = ?enddate? (+ 根据需要)
查询 3 = 查询 1 除了查询 2(丢失)
数据项:count(AccountId)
Query4 = Query2 EXCEPT Query1(获得)
数据项:count(AccountId)
我正在处理半加性数据,即账户余额。我正在尝试创建一个报告,其中 select 一个时间段,从这个时间段开始,我对该时间段开始和结束时的帐户状态感兴趣。有了这两个 'datasets' 我想做以下事情:
- 获取存在于第一个数据集中但不存在于最后一个数据集中的帐户 ID 的不同计数
- 获取最后一个数据集中存在的帐户 ID 的不同计数,但不是第一个
Cognos 内置了这个 except/intersect 功能,但我对使用它有点担心。担心它会很快变得非常混乱。创建我在这里描述的内容时,最佳做法是什么?
使用 window 函数可能会有更优雅的解决方案,但我喜欢使用许多简单的部分,以便下一个人有希望支持我所做的事情。
我认为您需要 4 个查询:
查询 1
数据项:AccountId
过滤器:[日期] =?开始日期? (+ 根据需要)
查询2
数据项:AccountId
过滤器:[date] = ?enddate? (+ 根据需要)
查询 3 = 查询 1 除了查询 2(丢失)
数据项:count(AccountId)
Query4 = Query2 EXCEPT Query1(获得)
数据项:count(AccountId)