问题:http://community.csdn.net/Expert/topic/5610/5610544.xml?temp=.4333612
Create Table TEST
(USER_ID Varchar(10),
USER_DATANAME Varchar(10),
USER_DATAVALUE Int)
Insert TEST Select 'A', 'X', 12
Union All Select 'B', 'X', 23
Union All Select 'C', 'Z', 34
Union All Select 'B', 'Y', 45
Union All Select 'A', 'Z', 12
Union All Select 'C', 'X', 23
Union All Select 'A', 'Y', 14
Union All Select 'B', 'z', 98
Union All Select 'c', 'y', 199
GO
Create Procedure SP_TEST
As
Begin
Declare @S Varchar(8000)
set @S = ' Select [USER_ID]'
Select @S = @S + ', SUM(Case USER_DATANAME When ''' + USER_DATANAME + ''' Then USER_DATAVALUE Else 0 End) As ' + USER_DATANAME
From [TEST] Group By USER_DATANAME
set @S = @S +' From [TEST] Group By [USER_ID]'
EXEC(@S)
End
GO
EXEC SP_TEST
GO
Drop Table TEST
Drop Procedure SP_TEST