SET @EE=''; 
SELECT @EE:=CONCAT(@EE,'sum(IF(hp.p_name=\'',p_name,'\'',',hn.amount,0)) AS `',p_name,'`,') FROM (SELECT  p_name FROM history_pager where p_date=v_pdate order by p_orderNo) A; 上面代码不知道那错了。