Создайте производный столбец в SSIS, который сбрасывается при изменении идентификатора

Что я надеюсь сделать, так это создать производный столбец, который создает добавочное значение, но сбрасывает идентификатор пациента.

На приведенном ниже снимке экрана видно, что в настоящее время у меня есть столбцы DCACCT, DCCODE и DCDESC. Но я хочу добавить производный столбец, содержащий увеличение на 1 для каждого комментария, связанного с идентификатором пациента (DCACCT). Но сбрасывается обратно на 1 при изменении идентификатора пациента.

Желаемый результат

Может ли кто-нибудь предложить какую-либо помощь в том, как я могу это сделать?

В настоящее время у меня есть производный столбец, который увеличивается для каждого идентификатора пациента с префиксом «N», но я не уверен, как изменить это выражение в соответствии со своими потребностями.

Редактор преобразования


person MISNole    schedule 11.03.2015    source источник
comment
Компоненты OOB в потоке данных не позволяют проверять строки впереди или позади текущей строки. Чтобы добиться того, что вы ищете, вам понадобится компонент скрипта для создания этих суррогатных идентификаторов, сбрасываемых всякий раз, когда ваше значение дозорного изменяется. Может быть даже обман этого вопроса. Просто убедитесь, что ваши исходные данные отсортированы, прежде чем они попадут в компонент.   -  person billinkc    schedule 11.03.2015
comment
Даже лучше, чем компонент скрипта, если исходным компонентом является SQL-запрос, вы можете создать столбец в запросе (с помощью ROW_NUMBER()) и не нужно добавлять какие-либо дополнительные преобразования в ваш поток данных.   -  person Tab Alleman    schedule 11.03.2015
comment
Спасибо, Tab, я проверю Row_Number, чтобы посмотреть, позаботится ли это о моих потребностях.   -  person MISNole    schedule 11.03.2015
comment
вы пробовали медленно менять управление размерами   -  person Govind    schedule 14.03.2015
comment
Спасибо Tab, ваш комментарий указал мне правильное направление, где я смог использовать функцию Row_Number для достижения желаемого результата.   -  person MISNole    schedule 15.03.2015


Ответы (1)


Чтобы достичь своей конечной цели, я импортировал данные из DB2, как делал это раньше, но затем я создал представление данных для использования функции Row_Number() в SQL Server:

Row_Number() Over (Partition By DCACCT Order By DCACCT) [PCMT],

Мой следующий шаг, возможно, мог быть достигнут с помощью SSMS, но я создал новый контейнер последовательности в SSIS и создал производный столбец, чтобы добавить свой префикс и суффикс:

Производный столбец

person MISNole    schedule 17.03.2015