select a.编号,a.学号,a.课程,b.考试,b.分数-b.分数 as 分差 from 表的结构 a, 表的结构 b where a.编号=b.编号-1
显示 not unique table/alias:"编号"
select b.编号,b.学号,b.课程,b.考试, (b.分数-a.分数) 分差 from 表 a, 表 b where b.编号 = a.编号+1
#成绩表 create table tbl_fs( fs_fsid int primary key auto_increment, fs_xuehao char(2), fs_kecheng varchar(8), fs_kaoshi varchar(10), fs_fenshu char(2) ) engine innodb character set utf8;insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第一次月考','87'); insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第二次月考','77'); insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第三次月考','97'); insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第四次月考','68'); insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第五次月考','98');版主ACMAIN_CHM的语句:select a.fs_fsid,a.fs_xuehao,a.fs_kecheng,b.fs_kaoshi,b.fs_fenshu-b.fs_fenshu as fencha from tbl_fs a, tbl_fs b where a.fs_fsid=b.fs_fsid-1; 得到的结果 编号 学号 课程 考试 分差 1 01 语文 第二次月考 0 2 01 语文 第三次月考 0 3 01 语文 第四次月考 0 4 01 语文 第五次月考 0benluobobo的语句:select b.fs_fsid,b.fs_xuehao,b.fs_kecheng,b.fs_kaoshi, (b.fs_fenshu-a.fs_fenshu) fencha from tbl_fs a, tbl_fs b where b.fs_fsid = a.fs_fsid+1; 得到的结果 编号 学号 课程 考试 分差 1 01 语文 第二次月考 -10 2 01 语文 第三次月考 20 3 01 语文 第四次月考 -29 4 01 语文 第五次月考 30 这是我要的
SELECT *, (SELECT A.`fs_fenshu`-`fs_fenshu` FROM tbl_fs WHERE fs_fsid=A.fs_fsid-1) AS SS FROM tbl_fs A
ACMAIN_CHM版主提供的语句:select a.编号,a.学号,a.课程,b.考试,b.分数-b.分数 as 分差 from 表的结构 a, 表的结构 b where a.编号=b.编号-1 b.分数-b.分数 改为 b.分数-a.分数另外,各位写得都对。但是前提是编号必须是连续的,如果不是联系的话,那么求出的结果就不对了。我在想想看如何改进。
from 表的结构 a, 表的结构 b
where a.编号=b.编号-1
select b.编号,b.学号,b.课程,b.考试, (b.分数-a.分数) 分差
from 表 a, 表 b where b.编号 = a.编号+1
create table tbl_fs(
fs_fsid int primary key auto_increment,
fs_xuehao char(2),
fs_kecheng varchar(8),
fs_kaoshi varchar(10),
fs_fenshu char(2)
) engine innodb character set utf8;insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第一次月考','87');
insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第二次月考','77');
insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第三次月考','97');
insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第四次月考','68');
insert into tbl_fs(fs_xuehao,fs_kecheng,fs_kaoshi,fs_fenshu) values('01','语文','第五次月考','98');版主ACMAIN_CHM的语句:select a.fs_fsid,a.fs_xuehao,a.fs_kecheng,b.fs_kaoshi,b.fs_fenshu-b.fs_fenshu as fencha from tbl_fs a, tbl_fs b where a.fs_fsid=b.fs_fsid-1;
得到的结果
编号 学号 课程 考试 分差
1 01 语文 第二次月考 0
2 01 语文 第三次月考 0
3 01 语文 第四次月考 0
4 01 语文 第五次月考 0benluobobo的语句:select b.fs_fsid,b.fs_xuehao,b.fs_kecheng,b.fs_kaoshi, (b.fs_fenshu-a.fs_fenshu) fencha from tbl_fs a, tbl_fs b where b.fs_fsid = a.fs_fsid+1;
得到的结果
编号 学号 课程 考试 分差
1 01 语文 第二次月考 -10
2 01 语文 第三次月考 20
3 01 语文 第四次月考 -29
4 01 语文 第五次月考 30
这是我要的
(SELECT A.`fs_fenshu`-`fs_fenshu` FROM tbl_fs WHERE fs_fsid=A.fs_fsid-1) AS SS
FROM tbl_fs A
from 表的结构 a, 表的结构 b
where a.编号=b.编号-1
b.分数-b.分数 改为 b.分数-a.分数另外,各位写得都对。但是前提是编号必须是连续的,如果不是联系的话,那么求出的结果就不对了。我在想想看如何改进。