Соединение в разрезе номеров строк
От: Воронин Иван Россия  
Дата: 26.07.18 07:14
Оценка:
Есть 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...) и потом соединить в разрезе корреспондентов и номеров строк.

Как это сделать короче и не медленнее?
Отредактировано 26.07.2018 7:25 Воронин Иван . Предыдущая версия . Еще …
Отредактировано 26.07.2018 7:15 Воронин Иван . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.