select sid,语文=isnull(sum(case course when '语文' then result end),0),数学=isnull(sum(case course when '数学' then result end),0),英语=isnull(sum(case course when '英语' then result end),0) fromresult group by sid order by sid
declare @sql varchar(8000)set @sql='select sid'select @sql=@sql ','course.name '=isnull(sum(case course when ''' course.name ''' thenresult end),0)'from course order by id set @sql=@sql ' from resultgroup by sid order by sid'print @sqlexec(@sql)