Click here to Skip to main content
15,891,473 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
C#
DAY         DESC	                 RN	RR	AR
1	    SPG	                  21	2735.6	130.266666666667
1	    TLP	                  9	2947.62	327.513333333333
1	    TOP	                  4	820	205
1	    TRS	                  9	2794.18	310.464444444444
1	    TSR	                  14	4829.98	344.998571428571
1	    TVL	                   7	1755	250.714285714286
1	    TVN	                   0	0	0
2	    SPG	                  12	1564.18	130.348333333333
2           TCC	                  3	1196	398.666666666667
2	    TCN	                  29	6514.9	224.651724137931


I want o/p like this :
C#
Days    Type   SPG    TCC  TCN TGO TLC TLD TLP TOP TRS TSR  TVL  TVN  
1       RN      21
1       RR     2735.6
1       AR     130.266666666667

Is it possible in sql server using pivot & unPivot.
please suggest .
Posted
Updated 8-Jan-14 23:09pm
v4

1 solution

try this,
SQL
;with tblname as
(
select 1 as [DAY],'SPG' as [DESC],convert(DOUBLE PRECISION ,21)[RN],convert(DOUBLE PRECISION ,2735.6) [RR],convert(DOUBLE PRECISION ,130.266666666667) [AR] UNION all
select 1,'TLP',9 ,2947.62,327.513333333333 UNION all
select 1,'TOP',4 ,820    ,205              UNION all
select 1,'TRS',9 ,2794.18,310.464444444444 UNION all
select 1,'TSR',14,4829.98,344.998571428571 UNION all
select 1,'TVL',7 ,1755   ,250.714285714286 UNION all
select 1,'TVN',0 ,0      ,0                UNION all
select 2,'SPG',12,1564.18,130.348333333333 UNION all
select 2,'TCC',3 ,1196   ,398.666666666667 UNION all
select 2,'TCN',29,6514.9 ,224.651724137931
)
SELECT [DAY],[TYPE],SPG,TCC,  TCN, TGO ,TLC ,TLD, TLP ,[TOP], TRS, TSR , TVL,  TVN
FROM
(
    SELECT
        [DAY],[DESC],[RN],[RR],[AR]
    FROM tblname
) as tbl
UNPIVOT
(
  [NUM]  FOR  [TYPE] IN ([RN],[RR],[AR])
)AS unpvt
PIVOT
(
    SUM([NUM])
    FOR [desc] IN (SPG,TCC,  TCN, TGO ,TLC ,TLD, TLP ,[TOP], TRS, TSR , TVL,  TVN )
)AS pvt
ORDER BY [day]

Happy Coding!
:)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900