SSIS - Как проверить, совпадает ли значение в столбце (совпадает) с другим столбцом - PullRequest
0 голосов
/ 26 ноября 2018

Я делаю процесс проверки, пытаюсь использовать условное разделение, чтобы определить, является ли текущий менеджер прежним менеджером в базе данных продавца (см. Ссылку на изображение ниже).Если они не совпадают, я позже буду использовать это, чтобы сигнализировать о смене.

Я попытался сделать [manager_2017] == [manager_2018], но он не запустился.Что я делаю неправильно?Разве он не должен работать, поскольку это правда или ложь?

Я использую SSIS с Visual Studio 2017.

https://i.stack.imgur.com/rUXEk.png

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Я нашел ошибку, но спасибо за советы.В основном образец имел нулевые значения, поэтому мне пришлось указать, как обращаться с ними до запуска SSIS.

Таким образом, формула в итоге выглядела так: [manager_2017] == [manager_2018] &&! ISNULL ([manager_2017])&&! ISNULL ([manager_2018])

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

0 голосов
/ 26 ноября 2018

В ожидании уточнения точной ошибки предоставленный синтаксис правильный.[manager_2017] == [manager_2018] является допустимым выражением SSIS, которое оценивается как логический тип (DT_BOOL).

Я считаю полезным добавить производный столбец перед такими вещами, как условное разделение, и создать явные столбцы для хранения моих логических флагов.Это облегчает добавление средства просмотра данных / потока данных в микс, чтобы убедиться, что я рассмотрел все случаи.

IsSameManager  `[manager_2017] == [manager_2018]`

Тогда в моем условном разделении у меня было бы два выходных потока.По умолчанию и новый «Сохраненный менеджер», который я могу затем разделить на один столбец IsSameManager

Я могу подумать о двух вещах, которые могут вызвать ошибку, основываясь на ваших данных примера.Во-первых, в SSIS имена столбцов чувствительны к регистру.Ваша электронная таблица имеет заглавные буквы для первого столбца «Salesperson_id» и строчные буквы для столбцов менеджера.Если они представлены как Manager_2017, выражение должно измениться на [Manager_2017]

Другая возможность - типизация данных.Если один из этих столбцов был интерпретирован как большой тип данных (DT_NTEXT / DT_TEXT), то сравнение между ним для не большого типа (DT_WSTR, DT_STR) не будет разрешено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...