Question

Need help to pivot/unpivot below table like the result, its for SQL Server 2005.

ID, Type, TypeValue

1, A, 10

1, A, 11

1, A, 12

1, B, 2

1, B, 3

1, C, 30

1, C, 31

Resultset:

ID, A, B, C

1, 10, 2, 30

1, 10, 2, 31

1, 11, 2, 30

1, 11, 2, 31

1, 12, 2, 30

1, 12, 2, 31

1, 10, 3, 30

1, 10, 3, 31

1, 11, 3, 30

1, 11, 3, 31

1, 12, 3, 30

1, 12, 3, 31

Was it helpful?

Solution

try this query

Select A.ID, A.TYPEVALUE, B.TYPEVALUE, C.TYPEVALUE
From (Select * From pivot_task Where TYPE = 'A') As A
Left Join (Select * From pivot_task Where TYPE = 'B') As B on 1=1
Left Join (Select * From pivot_task Where TYPE = 'C') As C On 1=1
Order BY B.TYPEVALUE, A.TYPEVALUE, C.TYPEVALUE

and the out put like this.

ID          TYPEVALUE TYPEVALUE TYPEVALUE
----------- --------- --------- ---------
1           10        2         30
1           10        2         31
1           11        2         30
1           11        2         31
1           12        2         30
1           12        2         31
1           10        3         30
1           10        3         31
1           11        3         30
1           11        3         31
1           12        3         30
1           12        3         31
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top