【问题标题】:How to get the previousID in SSIS using Lookup?如何使用 Lookup 在 SSIS 中获取 previousID?
【发布时间】:2017-03-13 06:59:26
【问题描述】:

我有两个输入表:

1) 网站:

 site_id||   site_name||   site_location


 1000   ||    abc     ||    XYZ_123

 1001   ||    tyu     ||    ERD_123

 1002   ||    iok     ||    FTR_678

 1003   ||    okn     ||    YHU_987

 1004   ||    ybg     ||    OLP_008

 1005   ||    qwe     ||    PLM_126

2)

产品:

 Product_id|| product_name||start_date||end_date

   212     || sme1        ||2014-12-25||2017-03-13

   250     || try1        ||2013-12-15|| 2017-03-13

   267     || inu1        || 2015-03-27|| 2017-03-17

我需要检查 id 重复了多少次,并像输出表一样对其进行排序。

这是我的输出表结构:

Id|| site_id|| product_id|| previous_id|| start_date|| end_date

1 || 1000   ||250        || null       || 2015-01-01||2017-03-13

2 || 1001   ||250        || 1          || 2014-12-25||2015-01-01

3 || 1002   ||250        || 2          || 2013-12-15||2014-12-25

4 || 1003   ||267        || null       || 2015-03-27|| 2017-03-17

5 ||1004    ||212        || null       || 2016-01-01||2017-03-13

6 || 1005   ||212        || 1          || 2014-12-25||2015-12-30

我已经使用派生列为 PreviousID 添加了一个新列,但是为了将之前的 PreviousID 与 ID 列映射,我无法找到方法。 我使用查找转换来查找 Site_id 和 product_id 的值,但我犯了一些错误,我无法弄清楚那个错误。

我正在使用 Visual Studio 2010。

感谢任何帮助。

【问题讨论】:

  • 你有什么理由必须在 SSIS 中这样做吗?我会在 SQL 存储过程中执行此操作。要在 SSIS 中执行此操作,我认为您必须使用脚本转换。
  • 如何进行脚本转换?请详细说明。
  • 你也可以使用Lag功能

标签: sql ssis msbi


【解决方案1】:

您可以在脚本转换中执行此操作。首先,您将创建一个包变量来保存PreviousID 的值。当脚本转换处理每一行时,您在脚本末尾设置PreviousID 变量的值,并在脚本开头读取变量的值以获得前一行设置的值。您还可以应用您使用的任何逻辑来确定何时将PreviousID 重置为空值。从您的示例中不清楚该逻辑是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多