没什么好方法。 你选择的已经是最通用的方法了。http://blog.csdn.net/acmain_chm/article/details/4283943
MySQL交叉表
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx(  id int primary key,  c1 c...

解决方案 »

  1.   

    结贴:这是使用for循环的结果,希望对你有帮助:
    WHILE $i <= $rowcnt DO
    SET @i:=0;
    SELECT col FROM (SELECT (@i:=@i+1) AS iden, CONCAT(@EE,'SUM(IF(exam_id=', exam_id, ',score,0)) AS a',exam_id,',') AS col  
    FROM (SELECT DISTINCT(exam_id) FROM e_exam WHERE gradeinfo_id=\'F710895E-E648-483E-8C0B-76EAB79CCD17\') AS tb)
    AS tb1 WHERE iden=$i INTO @EE; 
    SET $i:=$i+1; 
    END WHILE;再次感谢一楼。