0

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

4

1 回答 1

1

我假设当您说“当前行和上一行”时

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

希望这是你要找的

于 2017-02-01T19:25:54.743 回答