sql server - Pivot data in T-SQL -


i have group of people. lets call them a,b,c. have table shows how paid each month....

person|month|paid      jan   10      feb   20    b      jan   10    b      feb   20    b      sep   30    c      jan   10    c      june  20    c      july  30    c      sep   40  

this table can , go on years , years..

is there way pivot table (nothing see needs aggregated done in pivots) in table looks following?

     jan    feb    mar    apr    may    jun    jul    agu    sep    10     20 b    10     20     -      -      -      -      -      -      30 c    10     -      -      -      -      20     30     -      40 

haven't run before assume common problem ideas?

if using sql server 2005 (or above), here code:

declare @cols varchar(1000) declare @sqlquery varchar(2000)  select  @cols = stuff(( select distinct  ',' + quotename([month])                         yourtable xml path('') ), 1, 1, '')    set @sqlquery = 'select *       (select person, month, paid        yourtable ) base        pivot (sum(paid) [person]        in (' + @cols + ')) finalpivot'  execute ( @sqlquery ) 

this work no matter how many different status have. dynamically assembles query pivot. way can pivot dynamic columns assembling the query dynamically, can done in sql server.

other examples:


Comments

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -