首页 新闻 会员 周边 捐助

数据库 查询 面试题

0
悬赏园豆:20 [已解决问题] 解决于 2016-03-08 10:39

现有学生表 student 包括 Name,ID 和 成绩表Score包括 StudentID、科目Subject 开始日期ExDate和成绩Score.

 

同一个学生同一科目5天内不可能有两次成绩,请写sql查询出一个学生同一科目在5天内成绩重复的记录。

pengbg的主页 pengbg | 初学一级 | 园豆:13
提问于:2016-03-08 08:48
< >
分享
最佳答案
0

说的都对,主要看出题人的思路,我解答的时候就2中思路都作答最好。

pengbg | 初学一级 |园豆:13 | 2016-03-08 10:38
其他回答(2)
1

试试,

select a.Name,b.Subject  from student a  join Score b on a.ID=b.StudentID  group by a.Name,b.Subject,b.ExDate having COUNT(b.Subject)>1 and DATEDIFF(day,b.ExDate,GETDATE())<5

收获园豆:10
时光与树 | 园豆:184 (初学一级) | 2016-03-08 09:39

我是这样理解的,5天内成绩重复的记录  指的是对比自己最近一次的考试的日期,而你写的是对比今天。你是怎么理解的?

支持(0) 反对(0) pengbg | 园豆:13 (初学一级) | 2016-03-08 09:45

@pengbg: 这个完全看出题者的意思,按你的理解,只需要把今天日期改成max(b.exdate)即可

支持(0) 反对(0) 时光与树 | 园豆:184 (初学一级) | 2016-03-08 09:54

@星海之辉: max(b.exdate) = b.exdate,你的结果不对

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-03-08 11:13
0

select a.Name,b.Subject  from student a  join Score b on a.ID=b.StudentID  group by a.Name,b.Subject,b.ExDate having COUNT(b.Subject)>1

查询到临时表中,然后游标遍历判断,看看能不能符合你的要求

收获园豆:10
chengeng | 园豆:294 (菜鸟二级) | 2016-03-08 09:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册