MySQL 动态行转列
来源:互联网 发布:平板刷机软件 编辑:程序博客网 时间:2024/05/18 01:27
`id` INT(11) DEFAULT NULL,
`kemu` VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
INSERT INTO tbl01(id, kemu) VALUES ('1', '语文');
INSERT INTO tbl01(id, kemu) VALUES ('2', '数学');
INSERT INTO tbl01(id, kemu) VALUES ('3', '英语');
INSERT INTO tbl01(id, kemu) VALUES ('4', '物理');
INSERT INTO tbl01(id, kemu) VALUES ('5', '化学');
CREATE TABLE `tbl02` (
`nid` VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`kemu` VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`chji` INT(11) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
INSERT INTO tbl02 (nid, kemu, chji) VALUES ('李明', '1', '95');
INSERT INTO tbl02 (nid, kemu, chji) VALUES ('李明', '2', '89');
INSERT INTO tbl02 (nid, kemu, chji) VALUES ('李明', '4', '74');
INSERT INTO tbl02 (nid, kemu, chji) VALUES ('张三', '1', '81');
INSERT INTO tbl02 (nid, kemu, chji) VALUES ('张三', '3', '65');
INSERT INTO tbl02 (nid, kemu, chji) VALUES ('张三', '5', '38');
SET @sql := 'SELECT nid';
SELECT @sql := CONCAT(@sql, ', max(case kemu when ', id, ' then chji else 0 end) as ', kemu)
FROM (SELECT DISTINCT id, kemu FROM tbl01) AS a;
SELECT @sqlstr := CONCAT(@sql, ' from tbl02 group by nid');
PREPARE rc FROM @sqlstr;
EXECUTE rc;
CREATE
TABLE
`tbl03` (
`id`
int
(11)
DEFAULT
NULL
,
`xm`
varchar
(20)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`nj`
int
(11)
DEFAULT
NULL
,
`km`
varchar
(20)
COLLATE
utf8_unicode_ci
DEFAULT
NULL
,
`cj`
int
(11)
DEFAULT
NULL
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8
COLLATE
=utf8_unicode_ci
统计每个人各年级的总成绩:
SET @sql := 'SELECT xm';
SELECT @sql := CONCAT(@sql, ', sum(case nj when ', nj, ' then cj else 0 end) as `', nj, '年级`')
FROM (SELECT nj FROM tbl03 GROUP BY nj) AS a;
SELECT @sqlstr := CONCAT(@sql, ' from tbl03 group by xm');
PREPARE rc FROM @sqlstr;
EXECUTE rc;
- MySQL动态行转列
- MySql 动态行转列整理
- MySql动态行转列
- MySQL 动态行转列
- mysql动态行转列
- mysql动态行转列
- mysql 动态行转列
- mysql 动态行转列
- MYSQL动态行转列
- mysql 动态行转列
- mysql 动态行转列
- 数据库--mysql中动态行转列
- MySQL存储过程的动态行转列
- MySQL存储过程中使用动态行转列
- MySQL存储过程的动态行转列
- MySQL存储过程中使用动态行转列
- MySQL存储过程中使用动态行转列
- mysql动态sql语句
- IOS开发---获取用户当前地理坐标(最新)
- Android的图片,字符串,demin,color,以及Array,boolean,Integer资源的使用-android学习之旅(五十四)
- oracle数据库使用之数据查询入门
- UEditor插入视频、图片显示问题解决
- 大数据告诉你:程序员如何涨薪水
- MySQL 动态行转列
- Java 归并排序(MergeSort)算法实现
- Linux环境变量设置
- 让自己充满正能量的6个方法
- 【黑马程序员】java学习笔记之常量与变量
- 文章标题
- Java OOM的种类
- 利用BDF2-hibernateDao实现数据的持久化操作
- android插入usb或充电震动