/*第一种静态列*/ select ifnull(c1,'total'), sum(if(c2='B1',money,0)) AS B1money, sum(if(c2='B1',num,0)) AS B1num, sum(if(c2='B2',money,0)) AS B2money, sum(if(c2='B2',num,0)) AS B2num, sum(if(c2='B3',money,0)) AS B3money, sum(if(c2='B3',num,0)) AS B3num, sum(if(c2='B4',money,0)) AS B4money, sum(if(c2='B4',num,0)) AS B4num, SUM(money) AS TOTAL, SUM(num) AS TOTAL from tx group by c1 with rollup ;
/*第二种动态列*/
SET @EE='';
SELECT @EE:=CONCAT( @EE, 'SUM(IF(C2=/'',C2,'/'', ',money,0)) AS ', C2, 'money,', 'SUM(IF(C2=/'',C2,'/'', ',num,0)) AS ', C2, 'num,') FROM (SELECT DISTINCT C2 FROM TX) A;
SET @QQ=CONCAT('SELECT ifnull(c1,/'total/'),',LEFT(@EE,LENGTH(@EE)-1),' ,SUM(money) AS moneyTOTAL,SUM(num) AS numTOTAL FROM