sql server - SQL Unpivot multiple columns Data -
i using sql server 2008 , trying unpivot data , here sql code using,
create table #pvt1 (vendorid int, sa int, emp1 int,sa1 int,emp2 int) go insert #pvt1 values (1,2,4,3,9); go --unpivot table. select distinct vendorid,orders,orders1 (select vendorid, emp1, sa,emp2,sa1 #pvt1 ) p unpivot (orders emp in (emp1,emp2) )as unpvt unpivot (orders1 emp1 in (sa,sa1) )as unpvt1; go and here result of above code.
vendorid orders orders1 1 4 2 1 4 3 1 9 2 1 9 3 but want output way indicated below
vendorid orders orders1 1 4 2 1 9 3 the relationship above code 2 related 4 , 3 related 9 .
how can acheieve ?
an easier way unpivot data use cross apply unpivot columns in pairs:
select vendorid, orders, orders1 pvt1 cross apply ( select emp1, sa union select emp2, sa1 ) c (orders, orders1); see sql fiddle demo. or can use cross apply values clause if don't want use union all:
select vendorid, orders, orders1 pvt1 cross apply ( values (emp1, sa), (emp2, sa1) ) c (orders, orders1); see sql fiddle demo
Comments
Post a Comment