博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql行列转换方法自我总结
阅读量:4976 次
发布时间:2019-06-12

本文共 1379 字,大约阅读时间需要 4 分钟。

create table tx(

 id int primary key,
 c1 char(2),
 c2 char(2),
 money int,
 num int
);

insert into tx values

(1 ,'A1','B1',9,81),
(2 ,'A2','B1',7,53),
(3 ,'A3','B1',4,62),
(4 ,'A4','B1',2,91),
(5 ,'A1','B2',2,42),
(6 ,'A2','B2',9,66),
(7 ,'A3','B2',8,84),
(8 ,'A4','B2',5,55),
(9 ,'A1','B3',1,61),
(10 ,'A2','B3',8,43),
(11 ,'A3','B3',8,64),
(12 ,'A4','B3',6,72),
(13 ,'A1','B4',8,33),
(14 ,'A2','B4',2,24),
(15 ,'A3','B4',6,76),
(16 ,'A4','B4',9,51),
(17 ,'A1','B4',3,30),
(18 ,'A2','B4',5,26),
(19 ,'A3','B4',2,15),
(20 ,'A4','B4',5,11);

/*第一种静态列*/

 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

TX GROUP BY C1 WITH ROLLUP');

PREPARE stmt2 FROM @QQ;

EXECUTE stmt2;

 

转载于:https://www.cnblogs.com/kateyy/archive/2010/08/07/1794582.html

你可能感兴趣的文章
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>
(转)Android 仿订单出票效果 (附DEMO)
查看>>
数据库多张表导出到excel
查看>>
微信小程序去除button默认样式
查看>>
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
sass学习笔记-安装
查看>>
Flask (二) cookie 与 session 模型
查看>>
修改添加网址的教程文件名
查看>>
[BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
查看>>
裁剪图片
查看>>
数据结构实习 problem L 由二叉树的中序层序重建二叉树
查看>>
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>