ssis merge объединяет более 2 наборов данных - PullRequest
2 голосов
/ 14 сентября 2010

Я работаю над пакетом ssis, чтобы исправить некоторые данные из таблицы. Таблица выглядит примерно так:

CustID FieldID INT_VAL DEC_VAL VARCHAR_VAL DATE_VAL
1      1       23
1      2               500.0
1      3                       David
1      4                                    4/1/05
1      5       52369871
2      1       25
2      2               896.23  
2      3                       Allan
2      4                                    9/20/03
2      5       52369872

Я хочу преобразовать это в это:

CustID FirstName AccountNumber Age JoinDate Balance
1      David     52369871      23  4/1/05   500.0
2      Allan     52369872      25  9/20/03  896.23

В настоящее время у меня настроен пакет служб SSIS для извлечения данных из исходной таблицы, выполняется условное разбиение по идентификатору поля, а затем создается производный столбец при каждом разбиении. Часть, на которой я застрял - это объединение данных. Я хочу объединить данные вместе на CustId.

Тем не менее, объединение позволяет только объединить 2 набора данных, в конце мне потребуется объединить около 30 наборов данных. Есть ли хороший способ сделать это без необходимости объединения объединений?

1 Ответ

2 голосов
/ 14 сентября 2010

Это кажется немного неловким, почему бы просто не сделать это в запросе?

select
    CustID,
    max(case when FieldID = 3 then VARCHAR_VAL else null end) as 'FirstName',
    max(case when FieldID = 5 then INT_VAL else null end) as 'AccountNumber',
    max(case when FieldID = 1 then INT_VAL else null end) as 'Age',
    max(case when FieldID = 4 then DATE_VAL else null end) as 'JoinDate',
    max(case when FieldID = 2 then DEC_VAL else null end) as 'Balance'
from
    dbo.StagingTable
group by
    CustID

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

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