计算SSIS中当前行和上一行之间的差异

时间:2017-02-01 18:49:16

标签: ssis computation derived-column

如何计算SSIS中当前行和上一行之间的差异,然后使用该结果将新列添加到现有表

1 个答案:

答案 0 :(得分:1)

我假设你说“当前和以前的行”是

  1. 创建2个包变量,让我们说:'NumBefore'和'NumAfter'。 两者都是Int32。
  2. 在数据流任务中,使用源组件(比如OLEDB Source)并选择它是表还是查询。让我们说一个表T
  3. 在“数据流转换”列表中拖动“行计数”。双击它,在变量名称部分中,选择变量'User :: NumBefore'。行计数任务将在运行时保存该变量中的计算结果。
  4. 对从表T中提取的数据做任何你想做的事情。我的猜测是你要在同一个表T中插入新行,对吗?
  5. 您必须在控制流中使用第二个数据流任务。在内部拖动另一个具有相同表T的OLEDB源。使用另一个行计数任务,但这次使用变量'User :: NumAfter'。在行计数任务之后使用脚本组件或派生列。
  6. 如果使用派生列,请为列写一个名称,如果要替换xxx列的值,请选择“替换xxxx”;如果要将其添加为列输出,请选择“添加列”。
    1. 在表达式中,写:@ [User :: NumAfter] - @ [User :: NumBefore]。和你的OLEDB目的地。
  7. 希望这是你在寻找