需求:同一个表中查询学生本月成绩和上个月成绩在结果集中显示。
1、表结构
CREATE TABLE `stu_score` (
`id` bigint(8) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`grade` decimal(4,1) DEFAULT NULL COMMENT '成绩',
`createtime` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、测试数据
3、sql语句
SELECT a.id, a.name, a.grade,a.createtime,
(SELECT grade FROM stu_score b WHERE b.name=a.name AND b.id != a.id AND date_format(a.createtime,'%Y-%m')=date_format(DATE_SUB(b.createtime, INTERVAL -1 MONTH),'%Y-%m'))AS '上月成绩'
FROM stu_score a
4、结果集
工作中遇到的问题 再此记录一下。