在Cognos Report Studio中使用两个源时,有没有办法组合/覆盖数据?

时间:2015-10-02 17:37:50

标签: sql-server cognos-10 cognos-bi

我在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吗?

enter image description here

我应该使用基数吗?我不太确定这一举动。我可以试试但是我在这里处理160行。或者我应该试试Union?我需要帮助。谢谢。

       Source 1 = Source 2
1..1 Inner Join = 0..1 Left outer Join

如果你有更好的想法,我会非常乐意尝试这个!

1 个答案:

答案 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

您可以使用此模式强制执行您喜欢的任何逻辑。关键是要涵盖所有场景并指出在每种情况下使用的值。