quote: Originally posted by Looper Thanks - I am new to this and am a little confused by unpivot, could you show me an example for my scenerio?
--sample data preparation dont worry about thisDECLARE @Test table(PayNo int,PayCode varchar(10),Code1 varchar(10),Amount1 int,Code2 varchar(10),Amount2 int)INSERT INTO @TestVALUES (101,'A001','UGKI',100,'kjh',123),(102,'A002','UGKI',124,'sadg',345),(104,'A004','few',678,'savd',563),(105,'A005','sadv',658,'sav',142),(106,'A006','awv',547,'wer',547),(109,'A009','svvs',326,'wrwre',457)--actual solutionSELECT a.PayNo,a.PayCode,a.value,b.val1FROM(select PayNo,PayCode,value,ROW_NUMBER() OVER (PARTITION BY PayNo,PayCode ORDER BY PayNo) AS Seqfrom @Testunpivot(value for cat in (Code1,Code2))u)aJOIN(select PayNo,PayCode,val1,ROW_NUMBER() OVER (PARTITION BY PayNo,PayCode ORDER BY PayNo) AS Seqfrom @Testunpivot(val1 for cat1 in (Amount1,Amount2))v)bON a.PayNo=b.PayNoAND a.PayCode=b.PayCodeAND a.Seq=b.Seqoutput----------------101 A001 UGKI 100101 A001 kjh 123102 A002 UGKI 124102 A002 sadg 345104 A004 few 678104 A004 savd 563105 A005 sadv 658105 A005 sav 142106 A006 awv 547106 A006 wer 547109 A009 svvs 326109 A009 wrwre 457 and remember you need one more join in your case with table3 to get payid------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |