SSIS несколько строк - PullRequest
       34

SSIS несколько строк

2 голосов
/ 16 апреля 2019

Добрый день,

Вот ответ на очень простой запрос.Как можно видеть, это те части, которые соответствуют заявке в нашей базе данных.

enter image description here

У нас есть запрос на перенос этих данных, чтобы припретензия состоит из более чем 5 частей, затем мы разбиваем части на несколько строк.Так, например, в приведенном ниже примере мы получили бы что-то, похожее на это.

enter image description here

Может кто-нибудь указать мне правильное направление,Я знаком с простыми задачами SSIS и сделал много экспорта CSV.Я никогда не видел ничего подобного, так что это новый вызов для меня.Может кто-нибудь, пожалуйста, помогите, как я мог бы сделать это с SSIS.И последнее замечание: я не против делать все это на SQL Server, а просто использовать SSIS для экспорта данных.

Обновление 1 - Построение сред тестирования

create table #temp(
RowNo int,
DealerNumber varchar(10),
ClaimId int,
PartNumber varchar(15),
TotalAppPrice decimal(10,2))

INSERT INTO #temp
VALUES(1,'095443',226131,'1131655N',0),
(2,'095443',226131,'128483A1',7.4),
(3,'095443',226131,'17277981',0.11),
(4,'095443',226131,'17283181',0.98),
(5,'095443',226131,'17285381',4.65),
(6,'095443',226131,'2830559',20),
(7,'095443',226131,'2831297',103.2),
(8,'095443',226131,'2853800',48.6),
(9,'095443',226131,'2859335',32.75),
(10,'095443',226131,'47368248',18),
(11,'095443',226131,'47522280',0),
(12,'095443',226131,'47821526',68)

1 Ответ

0 голосов
/ 16 апреля 2019

Я не верю, что вы можете сделать это в потоке данных, вам нужно сделать это в TSQL.

Если вы получите ROW_NUMBER (), который делит на ClaimNo и упорядочивает на RowNo, вы можете выполнить целочисленное деление, чтобы получить GroupRowNo, и деление MODULO, чтобы получить столбцы 1-5.

Тогда у вас может быть CTE, который выглядит примерно так:

ClaimNo   PartNumber   TotalAppPrice  GroupRowNo   ColumnNo

Тогда ВЫ ВЫБЕРИТЕ группирование по ClaimNo и GroupRowNo и использование условного агрегирования для вычисления 5 столбцов:

MAX(CASE WHEN ColumnNo=1 THEN PartNumber ELSE NULL END) AS Exp1Desc
...