【问题标题】:Is there a way to combine / overwrite data when using two sources in Cognos Report Studio?在 Cognos Report Studio 中使用两个源时,是否可以合并/覆盖数据?
【发布时间】:2015-10-09 20:43:15
【问题描述】:

我在 Cognos 中使用了两个来源。

Source #1 - Old source
Source #2 - Current/New Source

以前只有一个来源,即 source1。然后 DW 团队的人开始将数据从 Source1 迁移/镜像到 Source2,最终在 Source2 中添加了一些在 Source 2 中不可用的数据。与 Source1 相同,在 Source1 中有一些数据在 Source2 中尚未迁移但人员/用户已经在使用 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 上离开外连接 Source 2 吗?

我应该使用基数吗?我不太确定这一举动。我可以尝试一下,但是我在这里处理 160 行。还是我应该尝试联合?我需要帮助。谢谢。

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

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

【问题讨论】:

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


    【解决方案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
    

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

    【讨论】:

    • 我刚看到你的回答。谢谢强生。所以如果我有 100 列,那么我必须在所有 100 列上使用这个 case 函数吗?实际上,我上面使用的列只是一个示例。我实际上正在处理 100 列。让我试试你的答案,如果它有效,我会检查复选标记。
    • 不幸的是,我想不出其他办法。您必须修改所有 100 列的供应自定义表达式。
    • 这行得通!高超!谢谢强生。我希望有一天我能和你一样优秀。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多