Это мои данные. Я пытаюсь преобразовать вертикальные данные в горизонтальные данные. Я пытался использовать PIVOT, но у меня нет столбца для использования в качестве совокупного.
Мне не нужно использовать PIVOT, но это оператор, который я использовал для такого рода вещей. Я тоже обдумал это, так как знаю все возможные GroupId
с.
Name GroupId
Joe B1
John B2
Mary C1
Lisa D2
Joe D2
Результат будет примерно таким. Я должен объединить все строки для каждого имени:
Name B1 B2 C1 D2
Joe B1 D2
John B2
Mary C1
Lisa D2
Я думал о чем-то подобном, но я знал, что это не даст желаемых результатов.
declare @table table
(
Name varchar(10),
GroupId varchar(2)
)
insert into @table
select 'Joe', 'B1' union
select 'John','B2' union
select 'Mary','C1' union
select 'Lisa','D2' union
select 'Joe','D2'
select *
from
(
select Name, GroupId
from @table
) src
pivot
(
min(Name)
for GroupId in ([B1], [B2], [C1], [D2])
) piv;