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