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