create table #tmp(ID int Identity(1,1),MatchID int,HostTeam varchar(50))
insert into #tmp(MatchID,HostTeam) select MatchID,HostTeam from MatchScene where WheelID = 1
declare @sql varchar(8000)
set @sql='select UserName'
select @sql=@sql
+',sum(case MatchID when '''+cast(MatchID as varchar(10))+''' then Result else 0 end) [Result'+ cast(ID as varchar(5))+']'
from (select ID,MatchID,HostTeam from #tmp) ab
select @sql=@sql+' from (select a.UserID as UserID,UserName,MatchID,Guess,Result,replace(Guess,Result,''<font color=red>''+Result+''</font>'') as showResult from UserMoneySevenDetail a
left outer join Users b on a.UserID = b.UserID
where WheelID = 1 ) as ttt group by UserName'
print(@sql)
exec(@sql)
drop table #tmp
--测试环境
Create Table # (ID varchar(10),RESULT varchar(20))
insert into # select 4,'AB'
union all select 5,'CD'
--动态SQL
declare @s varchar(2000)
set @s=''
select @s=@s+',['+ID+']=max(case when ID='''+ID+''' then RESULT else '''' end) '
from #
GROUP BY ID
set @s='SELECT '+stuff(@s,1,1,'')+' From # '
print @s
exec(@s)
--结果
4 5
-------------------- --------------------
AB CD
--
http://community.csdn.net/Expert/topic/4345/4345763.xml?temp=.9756586
UserID ID RESULT
1 4 AB
1 5 CD
2 4 EF
2 5 gh
结果:
UserID 4 5
1 AB CD
2 EF GH
----测试环境
Create Table # (UserID varchar(10),ID varchar(10),RESULT varchar(20))
insert into # select 1,4,'AB'
union all select 1,5,'CD'
union all select 2,4,'EF'
union all select 2,5,'gh'
--动态SQL
declare @s varchar(2000)
set @s='SELECT UserID'
select @s=@s+',['+ID+']=max(case when ID='''+ID+''' then RESULT else '''' end) '
from #
GROUP BY ID
set @s=@s+' From # GROUP BY UserID'
exec(@s)
--结果
UserID 4 5
---------- -------------------- --------------------
1 AB CD
2 EF gh