CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

大家帮我看看这sql语句怎么写.

楼主bigdog928(huzhiyuan)2005-04-01 20:32:44 在 MS-SQL Server / 基础类 提问

、在“学生管理数据库”中建立四张表,分别如下:  
  学生表:(主键:学号)  
  学号 姓名 性别 年龄 所在院系 班级 入学日期  
  20009001 葛文卿 女 22 国际贸易 国贸2班 2000-8-29  
  20014019 郑秀丽 女 21 会计学 会计1班 2001-9-2  
  20023001 刘成铠 男 18 计算机 软件2班 2002-8-27  
  20026002 李涛 女 19 电子学 电子1班 2002-8-27  
  20023002 沈香娜 女 18 计算机 软件2班 2002-8-27  
  20026003 李涛 男 19 计算机 软件1班 2002-8-27  
  20023003 肖一竹 女 19 计算机 软件2班 2002-8-27  
   
  课程表:(主键:课程号)  
  课程号 课程名 先修课 学分  
  C801 高等数学 4  
  C802 C++语言 C807 3  
  C803 数据结构 C802 4  
  C804 数据库原理 C803 4  
  C805 操作系统 C807 4  
  C806 编译原理 C803 4  
  C807 离散数学 4  
   
  成绩表:(主键:学号、课程号)  
  学号 课程号 成绩 学分  
  20023001 C801 98 4  
  20023002 C804 70 4  
  20026001 C801 85 4  
  20023001 C802 99 3  
  20026002 C803 82 4  
   
   
   
  授课表:(主键:课程号、班级名)  
  教师名 课程号 学时数 班级名  
  苏亚步 C801 72 软件2班  
  王文山 C802 64 软件2班  
  张珊 C803 72 软件2班  
  王文山 C804 64 软件2班  
  苏亚步 C801 72 软件1班  
   
  1.统计每一年龄选修课程的学生人数  
  2.在基本表“选课表”中检索平均成绩最高的学生学号  
  3.求表S中男同学的每一年龄组(超过2人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。  
  4.列出选修了全部课程的学生学号和姓名  
  5.查询这样的学生,该生至少选修了学生20026001所选修的全部课程  
   
  问题点数:20、回复次数:2Top

1 楼fesxe(想飞的鸟)回复于 2005-04-02 06:48:54 得分 0

1..统计每一年龄选修课程的学生人数     怎么统计,我不懂.  
  2..在基本表“选课表”中检索平均成绩最高的学生学号  
       
  select   top   1   学号,avg(分数)   from   选课表   group   by   学号   order   by   2   desc  
  3.求表S中男同学的每一年龄组(超过2人)有多少人?要求查询结果按人数升序排列,人数相同按年龄降序排列。  
  select   年龄,count(年龄)   from   学号   where   性别='男'   group   by   年龄   having   count(年龄)=2   order   by   2   asc  
   
  4.5   ..你这里面应该有一个选课表才对.  
  Top

2 楼hsj20041004(光芒)回复于 2005-04-02 09:00:05 得分 20

1、  
  select   A.年龄,count(*)   from   学生表   A   inner   join   成绩表   B   on   A.学号=B.学号   group   by   A.年龄  
  2、  
  select   top   1   学号,avg(分数)   from   选课表   group   by   学号   order   by   2   desc  
  3、  
  不明白意思  
  4、  
  select   学号,姓名   from     学生表     where   学号   in(   select   学号   from   成绩表   group   by   学号   having   count(*)=(select   count(*)   from     课程表))  
  5、  
  select   A.学号,A.姓名   from     成绩表   A   inner   join   学生表   B   on   A.学号=B.学号     where   B.课程号   in(select   课程号   from   成绩表   where     学号='20026001')Top

相关问题

  • 帮写一个sql语句
  • 帮我写条SQL语句????
  • 帮忙写条SQL语句
  • 帮写个SQL语句
  • 帮写两条SQL语句
  • $$$$$$$$ 帮写个SQL语句!
  • 写SQL语句???
  • 求写SQL语句
  • 求写SQL语句,
  • $$求写SQL语句$$

关键词

  • 学号
  • 课程
  • 学生
  • 软件
  • 排列
  • 计算机
  • 软件2班
  • 年龄
  • 选课
  • 选修

得分解答快速导航

  • 帖主:bigdog928
  • hsj20041004

相关链接

  • SQL Server类图书

广告也精彩

反馈

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