2

I have a long query which I'll summarize like:

SELECT Name, Type, Rev
From Table

It returns something like:

Name    Type    Checked
Bob     Grp1    Frank
Bob     Grp2    Frank
Bob     Grp3    Frank
Lisa    Grp1    Sarah
Lisa    Grp3    Sarah

Now, since I have up to 3 types, I'd like them to be their own columns and see the values in the 3rd column show up under each type:

For example:

Name   Grp1    Grp2    Grp3 
Bob    Frank   Frank   Frank
Lisa   Sarah   NULL    Sarah

Basically I'm looking for a query on how to do this. Any feedback would be appreciated.

John Cappelletti
  • 79,615
  • 7
  • 44
  • 66
kazzi
  • 524
  • 9
  • 33

2 Answers2

2

Quick sample

Select *
 From  YourTable
 Pivot (max(Checked) for Type in ([Grp1],[Grp2],[Grp3])) P

Edit - If you have more than the displayed fields

Select *
 From  (
            SELECT Name, Type, Checked
            From Table
       ) A
 Pivot (max(Checked) for Type in ([Grp1],[Grp2],[Grp3])) P
John Cappelletti
  • 79,615
  • 7
  • 44
  • 66
1

I usually use CASE statement like this:

select Name,
case Type when 'Grp1' then checked else null end as 'Grp1',
case Type when 'Grp2' then checked else null end as 'Grp2',
case Type when 'Grp2' then checked else null end as 'Grp3'
from table
Lamar
  • 1,761
  • 4
  • 24
  • 50