powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перевернуть таблицу
3 сообщений из 3, страница 1 из 1
Перевернуть таблицу
    #39665750
el_le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Имеется многоуровневая таблица со структурой подчинения сотрудников, в трех уровнях выглядит так:

declare @t table (zam varchar (255), rsm varchar(255), tmd varchar(255))
insert @t values ('Садыков', 'RSM1', 'TMD1'), ('Садыков', 'RSM1', 'TMD2'), ('Садыков', 'RSM2', '-'), ('Садыков', 'RSM3', '-'), ('Садыков', 'RSM4', 'TMD3'), ('Садыков', 'RSM5', 'TMD4');
zam_sd rsm tmdГен.дир RSM1 TMD1Ген.дир RSM1 TMD2Ген.дир RSM2 -Ген.дир RSM3 -Ген.дир RSM4 TMD3Ген.дир RSM5 TMD4

Как можно ее перевернуть, чтобы она была вот такого типа:

ген.дир ген.дир ген.дир ген.дир ген.дирRSM1 RSM2 RSM3 RSM4 RSM5TMD1; TMD2 - - TMD3 TMD4

То есть, например, двух ,TMD поместить в одну строку в подчинение RSM1.
...
Рейтинг: 0 / 0
Перевернуть таблицу
    #39665841
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el_le,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare @t table (zam varchar (255), rsm varchar(255), tmd varchar(255))
insert @t values ('Садыков', 'RSM1', 'TMD1'), ('Садыков', 'RSM1', 'TMD2'), ('Садыков', 'RSM2', '-'), ('Садыков', 'RSM3', '-'), ('Садыков', 'RSM4', 'TMD3'), ('Садыков', 'RSM5', 'TMD4');

With t as (
Select dense_rank() over(Order by zam, rsm) as ID, zam, rsm, tmd From @t),
t2 as (
Select distinct ID,stuff((Select distinct ', '+tmd From t as b Where a.ID = b.ID for XML path('')),1,2,'') as tmd From t as a
)
--Select * From t2
Select lvl, [1] ,[2] ,[3] ,[4] ,[5] 
From (
Select 1 as lvl,ID,zam From t
union all
Select 2 as lvl,ID,rsm From t
union all
Select 3 as lvl,ID,tmd From t2
) as t
pivot( max(zam) for ID in ([1],[2],[3],[4],[5]) ) as p
Order by lvl
...
Рейтинг: 0 / 0
Перевернуть таблицу
    #39665849
el_le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly, Спасибо огромное!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перевернуть таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]