日期:2014-05-17  浏览次数:20483 次

求个sql
已知表tab,结构和数据如下
季度JD  班级BJ   成绩CJ
1       a       80
1       b       89
1       c       78
2       a       55  
2       b       51
3       a       89

求个sql,按照如下格式显示结果
        班级a   班级b    班级c      
季度1    80       89        78
季度2    55       51
季度3    89

------解决方案--------------------
declare @sql nvarchar(max)
select @sql=isnull(@sql,'')+',max(case when bj='''+bj+''' then cj else 0 end)[班级'+bj+']' from(select distinct bj from tb)t
exec('select jd=''季度''+rtrim(jd)'+@sql+' from tb group by jd')