在 Cognos Report Studio 中使用两个源时,有没有办法合并/覆盖数据?
Is there a way to combine / overwrite data when using two sources in Cognos Report Studio?
我在 Cognos 中使用两个源。
Source #1 - Old source
Source #2 - Current/New Source
之前只有一个来源,那就是source1。然后 DW 团队的人开始 migrating/mirroring 从 Source1 到 Source2 的数据,最终在 Source2 中添加了一些在 Source 2 中不可用的数据。与 Source1 相同,一些数据在 Source1 中可用但尚未迁移到Source2 但 people/users 已经在请求使用 Cognos 的报告。他们迫不及待地想收到报告,所以他们建议这样做。如果两个来源的数据都可用,则用 (SOURCE 2)
的数据覆盖旧来源 (SOURCE 1) 的数据
有没有办法覆盖其他来源的数据?如果两个来源的数据都可用,则用 (SOURCE 2)
的数据覆盖旧来源 (SOURCE 1) 的数据
我使用的列名不是实际的列。
If
SOURCE 1
Policy_Number Policy_Holder_Name
1234 GroceryStore
5678 ToyShop
5555 BeautyShop
4444 Booksale
8899 Cards
7777 Electronics
and SOURCE 2
Policy_Number Policy_Holder_Name
1234 GroceryStore
5678 ToyShop
5555 BeautyShop
4444 Booksale
8899 Cards
2468 FreshMeat
1357 Hardware
Results should look like this.
Policy_Number Policy_Holder_Name
1234 GroceryStore
5678 ToyShop
5555 BeautyShop
4444 Booksale
8899 Cards
7777 Electronics
2468 FreshMeat
1357 Hardware
我应该在查询资源管理器中创建两个查询主题吗?来源 1 和来源 2。那我应该在 Source1 上离开 outer join Source 2 吗?
我应该使用基数吗?我不太确定这一举措。我可以尝试一下,但是我在这里处理 160 行。还是我应该试试 Union?我需要帮助。谢谢。
Source 1 = Source 2
1..1 Inner Join = 0..1 Left outer Join
如果您有更好的主意,我将非常乐意尝试!
我会使用完全外部联接,0..1 到 0..1,假设两个子查询汇总到相同的粒度。这将使您能够访问所有值,并且您可以使用简单的 CASE 语句在自定义数据项中进行选择:
CASE
WHEN [Source1].[Policy_Number] is not missing and [Source2].[Policy_Number] is not missing THEN [Source2].[Policy_Number]
WHEN [Source1].[Policy_Number] is not missing and [Source2].[Policy_Number] is missing THEN [Source1].[Policy_Number]
WHEN [Source1].[Policy_Number] is missing and [Source2].[Policy_Number] is not missing THEN [Source2].[Policy_Number]
END
您可以使用此模式来强制执行您喜欢的任何逻辑。关键是要涵盖所有场景,并指明在每种情况下使用什么值。
我在 Cognos 中使用两个源。
Source #1 - Old source
Source #2 - Current/New Source
之前只有一个来源,那就是source1。然后 DW 团队的人开始 migrating/mirroring 从 Source1 到 Source2 的数据,最终在 Source2 中添加了一些在 Source 2 中不可用的数据。与 Source1 相同,一些数据在 Source1 中可用但尚未迁移到Source2 但 people/users 已经在请求使用 Cognos 的报告。他们迫不及待地想收到报告,所以他们建议这样做。如果两个来源的数据都可用,则用 (SOURCE 2)
的数据覆盖旧来源 (SOURCE 1) 的数据有没有办法覆盖其他来源的数据?如果两个来源的数据都可用,则用 (SOURCE 2)
的数据覆盖旧来源 (SOURCE 1) 的数据我使用的列名不是实际的列。
If
SOURCE 1
Policy_Number Policy_Holder_Name
1234 GroceryStore
5678 ToyShop
5555 BeautyShop
4444 Booksale
8899 Cards
7777 Electronics
and SOURCE 2
Policy_Number Policy_Holder_Name
1234 GroceryStore
5678 ToyShop
5555 BeautyShop
4444 Booksale
8899 Cards
2468 FreshMeat
1357 Hardware
Results should look like this.
Policy_Number Policy_Holder_Name
1234 GroceryStore
5678 ToyShop
5555 BeautyShop
4444 Booksale
8899 Cards
7777 Electronics
2468 FreshMeat
1357 Hardware
我应该在查询资源管理器中创建两个查询主题吗?来源 1 和来源 2。那我应该在 Source1 上离开 outer join Source 2 吗?
我应该使用基数吗?我不太确定这一举措。我可以尝试一下,但是我在这里处理 160 行。还是我应该试试 Union?我需要帮助。谢谢。
Source 1 = Source 2
1..1 Inner Join = 0..1 Left outer Join
如果您有更好的主意,我将非常乐意尝试!
我会使用完全外部联接,0..1 到 0..1,假设两个子查询汇总到相同的粒度。这将使您能够访问所有值,并且您可以使用简单的 CASE 语句在自定义数据项中进行选择:
CASE
WHEN [Source1].[Policy_Number] is not missing and [Source2].[Policy_Number] is not missing THEN [Source2].[Policy_Number]
WHEN [Source1].[Policy_Number] is not missing and [Source2].[Policy_Number] is missing THEN [Source1].[Policy_Number]
WHEN [Source1].[Policy_Number] is missing and [Source2].[Policy_Number] is not missing THEN [Source2].[Policy_Number]
END
您可以使用此模式来强制执行您喜欢的任何逻辑。关键是要涵盖所有场景,并指明在每种情况下使用什么值。