select name,id,
max(case when groupa = 'A' then groupa end) as group1,
max(case when groupa = 'B' then groupa end) as group2,
max( case when groupa = 'C' then groupa end) as group3
from tablename
group by name, id
ако броят на groupa е фиксиран, горната заявка ще работи.
Редактиране:Използване на завъртане
select * from
(select name, id , groupa from tablename)
pivot xml (
max(groupa) for groupa in
(select distinct groupa from tablename)
)
Благодаря за решението. почти стигнах. Това е, което получавам след изпълнението на тази заявка. Всъщност има 53 различни ГРУПИ, така че се добавят 53 колони, но максималният брой групи, присвоени на потребител, е 5.
NAME ID A B C D E F G H
James 20 A null null null null null null H
Michael 30 A B null null E null null null
Как да получа резултати като този...
NAME ID GROUP_1 GROUP_2 GROUP_3
James 20 A H
Michael 30 A B E
Как да получа резултата си, както споменах във въпроса? Благодаря,