Please try the below query
select A,[1011],[1012],[1061] from
(select * from t)s
pivot
(max(C) for B in ([1011],[1012],[1061]))p
here's a link to demo fiddle :http://sqlfiddle.com/#!6/93e1e/1
Explanation:
The above query uses the simple PIVOT
syntax. Here all data from columns A, B, and C is selected in source set (aliased as s) and then pivoted on column B for values of column C.
Helpful link: Read more on msdn on PIVOT https://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx
Dynamic SQL:
--create table t (A int, B int, C int);
--insert into t values (11001,1011,873824)
--,(11001,1012,2240)
--,(11002,1011,36792)
--,(11002,1012,557172)
--,(11003,1061,2970);
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',[' + CAST(B AS NVARCHAR) +']' FROM t FOR XML PATH('')) ,1,1,'')
SET @query='select A,' + @cols + ' from '+
'(select * from t)s '+
'pivot '+
'(max(C) for B in ('+@cols +'))p '
EXEC(@query)
--drop table t