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

Calculate Difference between current and previous rows in SSIS

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

我假设你说 "current and previous rows" 是

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

希望这就是您要找的