56,677
社区成员
发帖
与我相关
我的任务
分享
select group_concat('sum(if(unitId=''',unitId,''',score,0)) as "',unitId,'"') into @sql FROM (SELECT DISTINCT unitId 人员成绩表) AS t;
set @sql=concat('select subjectId,',@sql,' from 人员成绩表 group by subjectId ');
prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;
select subjectId
,SUM(IF(unitId='a',score,0)) AS a
,SUM(IF(unitId='b',score,0)) AS b
#,--其它同上
FROM 人员成绩表
group by subjectId