我在Cognos中使用两个来源。
Source #1 - Old source
Source #2 - Current/New Source
以前只有一个来源,即source1。然后来自DW团队的人开始将数据从Source1迁移/镜像到Source2,最终在Source2中添加了一些在Source 2中不可用的数据。与Source1相同,Source1中的一些数据在Source2中尚未迁移但是人员/用户已经在使用Cognos请求报告。他们迫不及待想要报告,所以他们建议。如果两个来源都有数据,则使用来自(来源2)
的数据覆盖旧源(SOURCE 1)中的数据有没有办法覆盖其他来源的数据?如果两个来源都有数据,则使用来自(来源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
我应该在查询资源管理器中创建两个查询主题吗? Source1和Source2。那么我应该在Source1上留下外部联接源2吗?
我应该使用基数吗?我不太确定这一举动。我可以试试但是我在这里处理160行。或者我应该试试Union?我需要帮助。谢谢。
Source 1 = Source 2
1..1 Inner Join = 0..1 Left outer Join
如果你有更好的想法,我会非常乐意尝试这个!
答案 0 :(得分:1)
我会使用一个完整的外部连接,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
您可以使用此模式强制执行您喜欢的任何逻辑。关键是要涵盖所有场景并指出在每种情况下使用的值。