SQL server2005多行数据合并成一行,列栏位怎么确定

SQL server2005多行数据合并成一行,列栏位如何确定
declare @sql varchar(max)
set @sql = 'select line_id,bus_id,fx_id 'select @sql = @sql+', max(case [yxsc] when '''+cast(yxsc as varchar)+''' then tc else 0 end ) AS [yxsc'+cast(yxsc as varchar)+']' from (select distinct  yxsc  from #TCHZ ) as a set @sql = @sql +' from  #TCHZ group by line_id,bus_id,fx_id order by bus_id'
-- select @sql
exec (@sql)
结果:
line_id,bus_id,fx_id,yxsc1,yxsc2,yxsc3,yxsc5
后面4个栏位不是固定的,已知有1,2,3,5这4个类型,如何确定后面4个栏位
------解决方案--------------------
上个数据来看看吧。文本形式,不要截图了,尽可能给出期待结果,看代码很费神