首页 新闻 会员 周边

如何实现如下的数据库查询?

0
悬赏园豆:10 [已解决问题] 解决于 2021-01-30 14:48

假设我有一个成绩表记录若干次考试的成绩情况

id  考试次数 学生准考证号 学生成绩

1       1            00             a

2       2            00             b

3       1            01             c

4       2            01             d

然后学生被某老师教在下表中存储

id   阶段  准考证号 安排教师

1     1        00          X

2     1        01          Y

3     2        00          X

4     2        01          X

现在想通过教师,和考试序号(与阶段相同),来查询被该老师交的所有学生最近两次考试的成绩,形成如下的表

教师  准考证号  前成绩 后成绩

X        00          a        b

X        01          c        d

请问可以如何实现?我不知道如何把成绩这个字段,在查询中重复两次。

亦或是我表建得有问题?

郝酒的主页 郝酒 | 初学一级 | 园豆:193
提问于:2015-01-14 22:44
< >
分享
最佳答案
1

Y老师怎么不在结果中出来,可能是你要求的结果有问题?

收获园豆:10
cazwell | 菜鸟二级 |园豆:212 | 2015-01-15 09:48

上面是一个例子吧,我只查X老师的啊?

现在的问题是对成绩这个字段,我想分两次查找,两次查找的条件不一样。

郝酒 | 园豆:193 (初学一级) | 2015-01-15 10:26

@郝酒: 

SELECT [student].[id]
,[student].[考试次数]
,[student].[学生准考证号]
,[student].[学生成绩]
,[teather].安排教师
FROM [Test].[dbo].[student]
join [teather]
on
[student].[id]=[teather].id

cazwell | 园豆:212 (菜鸟二级) | 2015-01-15 11:13

这样取得数据  最简单

cazwell | 园豆:212 (菜鸟二级) | 2015-01-15 11:15

@cazwell: 这样就把所有数都取出来了,然后再用语言来计算哈?

但是我用的是ACCESS,不知道后续的计算怎么写。

如果是mysql+PHP,就用简单粗暴的方法解决了。

郝酒 | 园豆:193 (初学一级) | 2015-01-15 11:29

@郝酒: 

 

那你去研究ACCESS的VBA,数据库的问题用数据库解决,编程的问题用编程解决。

cazwell | 园豆:212 (菜鸟二级) | 2015-01-15 11:42
其他回答(1)
0

我也感觉这结果根本不正确啊,还是我意思理解错了?

西丑扒黄 | 园豆:168 (初学一级) | 2015-01-15 10:27

就是呢 ,b和 c的 位置搞反了 ,抱歉抱歉:)

想法就是怎么能把两次的成绩在一次查询中显示?

支持(0) 反对(0) 郝酒 | 园豆:193 (初学一级) | 2015-01-15 10:33

@郝酒: 用join http://www.w3school.com.cn/sql/sql_join.asp 具体自己看,不难理解

支持(0) 反对(0) 夜空下的男子 | 园豆:31 (初学一级) | 2015-09-12 15:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册