Есть MS SQL 2008
Таблица для примера:
create table #TT (Korr varchar(100), mType integer, mObject varchar(100), mSum numeric(10,2));
insert into #TT values
('Вася', 1,'Стол', 1.5),
('Вася', 1,'Стул', 0.5),
('Вася', 2,'Диван', 5),
('Петя', 1,'Стол', 1.7),
('Петя', 2,'Стул', 0.7)
На выходе нужен результат:
Corr Type1Object Type1Sum Type2Object Type2Sum
Вася Стол 1,50 Диван 5,00
Вася Стул 0,50 NULL NULL
Петя Стол 1,70 Стул 0,70
Корреспондентов десятки, типов около десятка, до двух.
Можно разделить на таблицы в разрезе типов, пронумеровать в каждой строки в разрезе корреспондентов (row_number() over...) и потом соединить в разрезе корреспондентов и номеров строк.
Как это сделать короче и не медленнее?