这几天一直在写sql,但好些都写不出来。请各位老手帮忙写个sql(视图或存储过程,或好的建议)

xaojancsdn 2004-03-23 02:56:04
学生表:
ID(主键) byyear(毕业年份) nj(年级) bj(班级)
1 2002 01级 01班
2 2006 高一 一班

成绩表:(xuenian,ID 为主键)
id(与学生表id关联) xuenian(学年) 语文 数学 外语。。。。。。
1 60 20
2 2001-2002 80 82

班级表:(nj,bj,byyear为主键)
bjid(主键) bzr(班主任) nj bj byear(毕业年份)
1 xxx 01级 02班 2004

现要得到如下查询结果:
毕业年份 科目 年级 班级 班主任 全班人数 年级人数

班参加考试人数 年级参考试人数 班补考率 年级补考人数

年级补考率



...全文
33 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xaojancsdn 2004-03-24
  • 打赏
  • 举报
回复
有道理。但这个些表不是我建的。我想想吧。多谢
caojiang 2004-03-24
  • 打赏
  • 举报
回复
学生表:
stu_ID(主键) bjid

成绩表:
id(与学生表id关联) 学年 科目 成绩

班级表:(nj,bj,byyear为主键)
bjid(主键) bzr(班主任) nj bj byear(毕业年份)
__________________________________________________________________

改成这样吧,SQL就好写多了,又简单!
caojiang 2004-03-24
  • 打赏
  • 举报
回复
成绩表也有问题,扩冲很难,好在高中也没几个科目,要是大学,那这个表不天长。
应该这样:
id(与学生表id关联) 学年 科目 成绩
caojiang 2004-03-24
  • 打赏
  • 举报
回复
成绩表也有问题,扩冲很难,好在高中也没几个科目,要是大学,那这个表不天长。
应该这样:
id(与学生表id关联) 学年 科目 成绩
xaojancsdn 2004-03-24
  • 打赏
  • 举报
回复
先这样:
这样一个表:
成绩表:
学生ID 语文 数学 外语。。。。
1 20 50 60
2 30 60 10
如何得到: 学生id 学科
1 语文
1 数学
即得到不及格的学生和科目
caojiang 2004-03-24
  • 打赏
  • 举报
回复
原来的表结构冗余太多!!!!!!!!!!!!!!
caojiang 2004-03-24
  • 打赏
  • 举报
回复
表结构设计得不好!!!!学生表里有个字段指向班级表就好了,不用在学生表里搞什么年啊,级啊的。班级表里都有啦。
zjcxc 2004-03-24
  • 打赏
  • 举报
回复
可以啊,你发到cxczj@hotmail.com
xaojancsdn 2004-03-24
  • 打赏
  • 举报
回复
我确实写不出来,也表达不出来,我觉得太难了。
老兄介不介意我把几个表的结构发给你。你帮我建这个视图好了。
成功后,我送300分以示感谢。
zjcxc 2004-03-23
  • 打赏
  • 举报
回复
OK, 如果写不出来,你最好能发测试数据给我,这样确实比较难理解
xaojancsdn 2004-03-23
  • 打赏
  • 举报
回复
我先试一试,实在写不出再问老兄。我觉得这个问题一下子表达不出来。
我先试写一下,遇到问题再问。
zjcxc 2004-03-23
  • 打赏
  • 举报
回复
那存在一个问题,补考是怎么计算的? 有一科不及格就算补考,还是全部不及格算补考.

这个补考率是/人数,还是/人数*科数?
xaojancsdn 2004-03-23
  • 打赏
  • 举报
回复
对啊:
你上次给我写的:http://expert.csdn.net/Expert/topic/2872/2872303.xml?temp=.9859583
本来是同一个问题,主要区别是科目数量不一样(你上次写的完全正确,我稍加改动得到了某一科的补考率。但其实各科的补考率我都需要。
我的意思是某个老子要查到一个学校某年级或某班级的补考率。及这个班的班主任,任课老师:

毕业年份 科目 年级 班级 班主任 全班人数 年级人数
上次这个科目写死了(语文)
----- -------
xaojancsdn 2004-03-23
  • 打赏
  • 举报
回复
不是,学生id不变。学年与毕业年份是不一样。
2001-2002是学年,单写2002是毕业年份
zjcxc 2004-03-23
  • 打赏
  • 举报
回复
第二条怎么会是2001-2002? 两个的写在一齐?

学生表中,id是主键与成绩表关联,意思是说,同一个学生,如果有几学年的话,他的id不同?
menggirl 2004-03-23
  • 打赏
  • 举报
回复
这不就是一个试图么
xaojancsdn 2004-03-23
  • 打赏
  • 举报
回复
忘了写这个学年。,我仔细看了邹工以前给我写的,但这个有点不同:就是效率问题。
因为我的科目较多。邹工不妨再帮帮忙如何?
zjcxc 2004-03-23
  • 打赏
  • 举报
回复
id(与学生表id关联) xuenian(学年) 语文 数学 外语。。。。。。
1 60 20 --既然是id+学年为主键,怎么这里为空?
2 2001-2002 80 82 --这条数据怎么这么怪?
zjcxc 2004-03-23
  • 打赏
  • 举报
回复
这个好像写过一次吧,看看

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧