2012-06-15 5 views
0

У меня естьPivoting в SQL

SalesOrderId Partners PartnerType 
1     A   1 
1     B   2 
2     X   1 
2     Y   2 

Мне нужно

SalesOrdeId Reseller Distrubutor ResellerType DistributorType 
1    A    B   1    2 
2    X    Y   1    2 

нотабене ~ Reseller Type = 1, Дистрибьюторов Тип = 2

Можно ли добиться этого с помощью поворота?

DDL

declare @t table(SalesOrderId int,Partners Varchar(10),PartnerType int) 
Insert into @t values(1,'A',1),(1,'B',2),(2,'X',1),(2,'Y',2) 
select * 
From @t 

Благодаря

ответ

1
select SalesOrderId, 
     max(case PartnerType when 1 then Partners end) as Reseller, 
     max(case PartnerType when 2 then Partners end) as Distributor, 
     1 as ResellerType, 
     2 as DistributorType 
from @t 
group by SalesOrderId