user1323981
user1323981

Reputation:

Pivoting in SQL

I have

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

I need

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

N.B.~ Reseller Type = 1, Distributor Type = 2

Is it possible to achieve this using pivoting?

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

Thanks

Upvotes: 0

Views: 109

Answers (1)

Mikael Eriksson
Mikael Eriksson

Reputation: 138960

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

Upvotes: 1

Related Questions