Вычислить разницу между текущей и предыдущей строками в службах SSIS

Как рассчитать разницу между текущей и предыдущей строками в службах SSIS, а затем использовать этот результат для добавления нового столбца в существующую таблицу

1 ответ

Решение

Я предполагаю, что когда вы говорите "текущие и предыдущие строки"

  1. Создайте 2 переменные пакета, скажем: "NumBefore" и "NumAfter". Оба Int32.
  2. Внутри задачи потока данных используйте исходный компонент (скажем, источник OLEDB) и выберите, является ли он таблицей или запросом. Допустим, таблица T
  3. Перетащите "Количество строк" ​​в список "Преобразования потока данных". Дважды щелкните по нему и в разделе Имена переменных раздела выберите переменную "User::NumBefore". Задача подсчета строк во время выполнения сохранит результат вычисления в этой переменной.
  4. Делайте все, что хотите, с данными, извлеченными из таблицы T. Я предполагаю, что вы собираетесь вставить новые строки в ту же таблицу T, верно?
  5. Вы должны использовать вторую задачу потока данных в потоке управления. Внутри перетащите другой источник OLEDB с той же таблицей T. Используйте другую задачу подсчета строк, но на этот раз используйте переменную "User::NumAfter". После задания количества строк используйте либо компонент сценария, либо производный столбец.
  6. Если вы используете производный столбец, напишите имя для столбца, выберите параметр "Заменить xxxx", если вы хотите заменить значение столбца xxx, или "Добавить столбец", если вы хотите добавить его в качестве вывода столбца.
    1. В выражении напишите: @[User::NumAfter] - @[User::NumBefore]. и место вашего назначения OLEDB.

Надеюсь, что это вы искали

Другие вопросы по тегам