| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1327 人关注过本帖
标题:求助sql语句
只看楼主 加入收藏
commander5
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-6-20
收藏
 问题点数:0 回复次数:9 
求助sql语句
这是我建的三个表
stu(学生表)
sid int
sname varchar(10)
sex bit
birth datetime

sourses(课程表)
soid int
soname varchar(20)

score(成绩表)
sid int             //学号
soid int             //课程号
scores int            //成绩

我想查询一下所有课程都及格的学生信息

我已经想了两天还是写不出来

帮帮啦
搜索更多相关主题的帖子: sql 语句 
2008-11-05 21:49
小仙
Rank: 7Rank: 7Rank: 7
来 自:光之谷
等 级:贵宾
威 望:39
帖 子:1812
专家分:1
注 册:2008-8-8
收藏
得分:0 
网吧没有SQL,我是脑子想的。
select so.soname as '课程名' ,st.sname as '学生名字'
from stu as st join score as sc
on st.sid = sc.sid join sourses as so on
so.soid = sc.soid
group by st.sid
having min(sc.scores)>=60
你试下看行不行,楼下帮忙指正下。


仁者乐膳,智者乐睡。我都爱~
2008-11-05 22:08
jxyga111
Rank: 8Rank: 8
来 自:中華人民共和國
等 级:贵宾
威 望:33
帖 子:6015
专家分:895
注 册:2008-3-21
收藏
得分:0 
select a.name, b.name,scores from a left join c on a.id=c.id left join b on b.no=c.no  where c.scores >= 60 group by a.id,a.name,b.name,scores

烈焰照耀世界,斌凍凍千萬裏
2008-11-06 14:54
ql2008
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-26
收藏
得分:0 
select x.sname,ch.scores, k.soname
from stu x.score ch,sourses k
where x.sid=ch.sid and ch.soid=k.soid and ch.scores>=60
order by scorses
2008-11-06 15:33
ql2008
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-26
收藏
得分:0 
from句的“.”改为“,”
2008-11-06 15:35
guo_jianwen
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2007-10-31
收藏
得分:0 
select * from stu
where sid in(
  select sid from score
  GROUP BY sid
  HAVING MIN(scores) >= 60
)
2008-11-06 16:00
wencan83
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-10-24
收藏
得分:0 
SELECT * FROM stu WHERE sid IN
(SELECT sid FROM (SELECT sid,SUM(soid) FROM score GROUP BY sid WHERE scores>=60 ) WHERE SUM(soid)
=(SELECT SUM(soid) FROM sourses))

就这样一条句子查询语句就搞定
2008-11-06 23:22
小仙
Rank: 7Rank: 7Rank: 7
来 自:光之谷
等 级:贵宾
威 望:39
帖 子:1812
专家分:1
注 册:2008-8-8
收藏
得分:0 
select st.sname as '学生名字'
from stu as st join score as sc
on st.sid = sc.sid join sourses as so on
so.soid = sc.soid
group by st.sid,st.sname
having min(sc.scores)>=60
上面的group by写错了,应该加个st.sname


仁者乐膳,智者乐睡。我都爱~
2008-11-07 17:57
commander5
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-6-20
收藏
得分:0 
谢谢
大家了

都怪自己学艺不精啊
看来以后要加倍努力了
2008-11-09 00:45
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
select ...
where stu.sid not in (
  select distinct score.sid from score where scores < 60)
and stu.sid in (select distinct score.sid from score)

1、成绩表中任何不及格科目对应的学号,即为有不及格科目的学生;
2、余下的学号中,再把成绩表中没有的学号过滤掉,即过滤掉那些学生表中有但成绩表中没有(可理解为暂未记录成绩)的学生信息,剩下的就是全部都及格的了。
3、选择列表可根据实际需要使用各种连接。

爱我至爱,至死不渝!
2008-11-09 12:36
快速回复:求助sql语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041573 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved