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

请教SQL语句问题

楼主zhouxinjie(zhouwei)2004-09-02 01:30:21 在 MS-SQL Server / 应用实例 提问

--编写成绩处理的函数,返回表的形式  
  create   function   avg_zhou()  
  returns   table  
  as  
  return(   select   ave_chj.stu_num,ave_bixiucourse.course_code,   avg_score=case    
  when   min(ave_chj.course_score)<60   and   max(ave_chj.course_score)>60   then   60  
  else   max(ave_chj.course_score)   end  
  from   ave_chj,ave_bixiucourse  
  where   charindex(ave_chj.course_code,   ave_bixiucourse.courselike_code)>0    
  group   by   ave_chj.stu_num,ave_bixiucourse.course_code,ave_bixiucourse.courselike_code    
  )  
   
   
   
  怎么修改,大致意思就是将ave_chj存放的是成绩记录,ave_bixiucourse存放的是必修的课程记录.  
  就是将每个人的必修课程成绩给处理一下.  
  有重修的记录并且有高于60的记录就取60,否则都是取最高分.  
  有的同学重修的时候,当年重修的那门课程已经停开啦,需要用另外修另外一课来替代.  
  有的同学这门课程要是没有修,也就是在ave_chj中没有找到对应的记录,就将这门课程记做30分.  
  ave_chj  
  stu_num       course_code   course_name   course_score  
  20011604,"3240600","多媒体技术",81  
  20011604,"3241400","计算机网络B",44  
  20011604,"3243043","计算机应用基础B",46  
  20011604,"3243040","计算机应用基础A",77  
   
  ave_bixiucourse  
      course_name                     course_name                                             course_likecode  
      计算机应用基础B             3243043                                                 3243043,3243040  
      多媒体技术                       3240600                                                   3240600    
      计算机网络B                     3241400                                                     3241400  
      计算机语言设计               3235620                                                     3235620  
   
   
  (其中计算机应用基础A可以替代计算机应用基础B)  
  结果应该是  
  stu_num               course_name                               course_score  
  20011604           计算机应用基础B                             60  
  20011604             多媒体技术                                     81  
  20011604             计算机网络B                                   44  
  20011604             计算机语言设计                             30  
  问题点数:0、回复次数:5Top

1 楼zhouxinjie(zhouwei)回复于 2004-09-02 10:12:14 得分 0

各位帮帮我解决一下撒!Top

2 楼Frank1982(米)回复于 2004-09-02 11:53:37 得分 0

有重修的记录并且有高于60的记录就取60,否则都是取最高分.  
  有的同学重修的时候,当年重修的那门课程已经停开啦,需要用另外修另外一课来替代.  
  有的同学这门课程要是没有修,也就是在ave_chj中没有找到对应的记录,就将这门课程记做30分.  
   
  我觉得这个要求用其他的脚本语言来实现比较好,sql语句有点难判断Top

3 楼zhouxinjie(zhouwei)回复于 2004-09-02 13:06:05 得分 0

那样的话,执行效率太低Top

4 楼ouyld(ゎたしすきぁぉた)回复于 2004-09-02 19:01:24 得分 0

UPTop

5 楼hanshufan(小帆)回复于 2004-09-03 11:38:28 得分 0

upTop

相关问题

  • 求SQL语句
  • sql语句。
  • sql语句?
  • sql 语句?
  • 求SQL语句
  • ***求SQL语句***
  • sql语句??
  • sql语句
  • sql语句
  • SQL语句

关键词

  • 课程
  • 计算机
  • 应用
  • code
  • chj
  • bixiucourse
  • ave
  • course
  • 记录
  • 计算机应用基础

得分解答快速导航

  • 帖主:zhouxinjie

相关链接

  • SQL Server类图书

广告也精彩

反馈

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