Sql 如何使用查找在SSIS中获取以前的ID?

Sql 如何使用查找在SSIS中获取以前的ID?,sql,ssis,msbi,Sql,Ssis,Msbi,我有两个输入表: 1) 地点: (二) 产品: 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重复了多少次,并像输

我有两个输入表:

1) 地点:

(二)

产品:

 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
我使用dervied column为PreviousID添加了一个新列,但要将以前的PreviousID映射到ID列,我无法找到一种方法。 我使用lookup转换来查找Site_id和product_id的值,但是我犯了一些错误,我无法找出那个错误

我正在使用VisualStudio2010


非常感谢您的帮助。

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

您有什么理由必须在SSIS中这样做吗?我将在SQL存储过程中执行此操作。要在SSIS中实现这一点,我认为您必须使用脚本转换。如何使用脚本转换?请详细说明。您也可以使用滞后功能
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