CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

考水平

楼主yanleigis(可可)2003-08-01 17:50:36 在 MS-SQL Server / 基础类 提问

1.学生表:字段有,学号,姓名    
  2.科目表:字段有,科目代号,科目名称    
  3.关联表   :字段有,   学号,科目代号,成绩,  
  使用SQL语句完成如下功能:  
  1. 创建3个表的SQL表名和字段名都使用英文,自行设计。(20分)  
  2. 查询:学号为20030405的学生的语文、数学成绩,一行显示。(25分)  
  3. 查询:   学号为20030405的学生,最高分的科目(20分)  
  4. 查询:语文最高分学生姓名(15分)  
  5. 查   询:每个学生的平均分(20分)  
  问题点数:100、回复次数:6Top

1 楼txlicenhe(马可)回复于 2003-08-01 18:01:48 得分 10

1:  
  create   table   student(  
                      studID   varchar(5)   not   null,studName   varchar(20)  
                    CONSTRAINT   [PK_student]   PRIMARY   KEY     CLUSTERED    
  (  
  studID  
  )     ON   [PRIMARY]    
  )ON   [PRIMARY]  
  ....  
   
  Top

2 楼tj_dns(愉快的登山者)回复于 2003-08-01 18:17:06 得分 10

5  
  select   学号,avg(成绩)   from   关联表   group   by   学号Top

3 楼pengdali()回复于 2003-08-01 18:25:58 得分 40

1. 创建3个表的SQL表名和字段名都使用英文,自行设计。(20分)*/  
   
  create   table   STUDENT(SID   int,Sname   varchar(10))  
  insert   student   values(20030405,'WAN')  
  insert   student   values(20030406,'NAM')  
   
   
  create   table   COURCE   (CID   int,CNAME   varchar(4))  
  insert   COURCE   values(1,'语文')  
  insert   COURCE   values(2,'数学')  
   
   
  create   table   SC(SID   int,CID   int,SCORE   int)  
  insert   sc   values(20030405,               1             ,       90)  
  insert   sc   values(20030405   ,             2         ,           67)  
  insert   sc   values(20030406       ,         2       ,             46)  
  insert   sc   values(20030406       ,       1     ,               89)  
   
   
  --2. 查询:学号为20030405的学生的语文、数学成绩,一行显示。(25分)  
   
  select   a.sid,max(case   when   b.CNAME='语文'   then   a.SCORE   end)   语文,max(case   when   b.CNAME='数学'   then   a.SCORE   end)   数学   from   SC   a   join   COURCE   b   on   a.CID=b.CID   where   a.SID=20030405   group   by   a.sid  
   
  --3. 查询:   学号为20030405的学生,最高分的科目(20分)  
   
  select   top   1   b.CNAME   from   SC   a   join   COURCE   b   on   a.CID=b.CID   where   a.SID=20030405   order   by   SCORE   desc  
   
  --4. 查询:语文最高分学生姓名(15分)  
   
  select   top   1   c.sNAME   from   SC   a   join   COURCE   b   on   a.CID=b.CID   join   student   c   on   a.sid=c.sid     where   b.CNAME='语文'   order   by   SCORE   desc  
   
  --5. 查   询:每个学生的平均分(20分)  
   
  select   SID,avg(SCORE)   SCORE   from   sc   group   by   SID  
   
  --------------------  
  drop   table   SC,COURCE,STUDENTTop

4 楼zjcxc(邹建)回复于 2003-08-01 20:07:27 得分 40

1.学生表:字段有,学号,姓名    
  2.科目表:字段有,科目代号,科目名称    
  3.关联表   :字段有,   学号,科目代号,成绩,  
  使用SQL语句完成如下功能:  
   
  1. 创建3个表的SQL表名和字段名都使用英文,自行设计。(20分)  
   
  --学生表  
  create   table   tbstudent(sID   varchar(10),sName   varchar(20))  
  --科目表  
  create   table   tbsubject(subjectID   varchar(10),subjectName   varchar(50))  
  --关联表  
  create   table   tbjoin(sId   varchar(10),subjectId   varchar(10),result   decimal(20,1))  
   
   
   
  2. 查询:学号为20030405的学生的语文、数学成绩,一行显示。(25分)  
  select   a.sID,max(case   b.subjectname   when   '语文'   then   b.result   end)   as   语文,max(case   b.subjectname   when   '数学'   then   b.result   end)   as   数学  
  from   tbstudent   a,(select   a.subjectID,a.subjectName,b.result,b.sID   from   tbsubject   a,tbjoin   b   where   a.subjectid=b.subjectid)   b  
  where   a.sid=b.sid   and   a.sid='20030405'  
  group   by   a.sid  
   
  Top

5 楼zjcxc(邹建)回复于 2003-08-01 20:17:11 得分 0

3. 查询:   学号为20030405的学生,最高分的科目(20分)  
   
  select   subjectname   from   tbsubject   where   subjectid=(select   top   1   subjectid   from(  
  select   subjectid,max(result)   as   result   from   tbjoin   where   sid='20030405'   group   by   subjectid   )   a)  
   
   
   
  4. 查询:语文最高分学生姓名(15分)  
   
  select   sname   from   tbstudent   where   sid=(select   top   1   sid   from(select   sid,max(result)   as   result   from   tbjoin   where   subjectid=(select   top   1   subjectid   from   tbsubject   where   subjectname='语文')   group   by   sid)   a  
  ))  
   
   
  Top

6 楼zjcxc(邹建)回复于 2003-08-01 20:18:20 得分 0

5. 查   询:每个学生的平均分(20分)  
   
  select   a.sid,a.sname,avg(b.result)  
  from   tbstudent   a,tbjoin   b   where   a.sid=b.sidTop

相关问题

  • 考考你水平!!
  • 考考大家的计算机水平
  • 2001年水平考试教材
  • 大连 计算机水平考试
  • 水平考试没过的人 进来
  • 关于软考----资格考试与水平考试
  • 2001年的程序员水平考试考“软件工程”吗?
  • 水园智力水平考试补考开始了
  • 资格考试和水平考试有什么不同?
  • 今年软件专业的水平考试分不分专业?

关键词

  • 学号
  • 科目
  • 字段
  • 学生
  • 数学
  • 查询
  • sql
  • subjectid
  • sid
  • cource

得分解答快速导航

  • 帖主:yanleigis
  • txlicenhe
  • tj_dns
  • pengdali
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo