一个行列转换的问题

问题: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 

posted on 2007-06-20 11:34  HTTP500  阅读(121)  评论(0)    收藏  举报