CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

求最优化的SQL语句或良好算法(200分)

楼主MarGo(潇洒)2002-10-12 11:01:05 在 C++ Builder / 基础类 提问

我的实现是这样的,觉的算法不好,所以,征求大家的意见,多多关照:  
  程序(C/S结构多客户端)  
  (注意:统计的课程是不定的)  
  报表格式:  
      班级         课程代码/课程名称     及格率     优秀率     平均分    
  按班级统计各科成绩平均分:select   avg(cj)   as   pjf   from   b_xscjb   where   kcdm='00'   and    
   
  bjdm   in('200106','200102')   group   by   kcdm,bjdm  
  统计优秀人数,及格人数统计  
  1。   select   count(*)   as   rx,bjdm,kcdm   from   b_xscjb   where   cj>=90   and   kcdm   in    
   
  ('00','01')   and   bjdm   in('200106','200102')   group   by   bjdm,kcdm  
  2。   select   count(*)   as   rx,bjdm,kcdm   from   b_xscjb   where   cj>=60   and   kcdm   in    
   
  ('00','01')   and   bjdm   in('200106','200102')   group   by   bjdm,kcdm      
  各科参加考试人数统计  
  select   count(*)   as   ksrx,bjdm,kcdm   from   b_xscjb   where   kcdm   in   ('00','01')   group   by    
   
  bjdm,kcdm    
  统计优秀率(单科)  
      优秀人数/总人数  
  统计及格率(单科)  
      及格总人数/考试总人数  
   
  多层循环实现最终报表统计(借助本地ACCESS数据库表做为临时打印库)  
  报表格式:  
      班级         课程代码/课程名称     及格率     优秀率     平均分    
  给个好的建议,或更好的SQL语句    
  问题点数:100、回复次数:7Top

1 楼hmily1688(没什么好说的)回复于 2002-10-12 11:23:13 得分 0

建议你做成存储过程,不然速度???Top

2 楼MarGo(潇洒)回复于 2002-10-12 11:25:07 得分 0

我也想做成存储过成,但考率到了并发问题以及参数太过于多,才出此下策Top

3 楼MarGo(潇洒)回复于 2002-10-12 11:27:15 得分 0

而且参数个数也是不定的Top

4 楼MarGo(潇洒)回复于 2002-10-12 11:28:50 得分 0

最终我还要返回一个记录集,这样的存储过程如何编呢Top

5 楼j9988(j9988)回复于 2002-10-12 12:34:08 得分 100

SQLSERVER2000:  
  select    
  bjdm   as   班级,  
  kcdm   as   科目,  
  avg(cj)   as   平均分,  
  1.0*sum(case   when   cj>=90   then   1   else   0   end)/count(*)   as   优秀率,  
  1.0*sum(case   when   cj>=60   then   1   else   0   end)/count(*)   as   优秀率    
  from   b_xscjb   where   kcdm   in   ('00','01')    
  and   bjdm   in('200106','200102')    
  group   by   bjdm,kcdmTop

6 楼j9988(j9988)回复于 2002-10-12 12:37:24 得分 0

ACCESS 没试过,应可以用IIF代替CASE语句,也可以一句完成,不需要用过程Top

7 楼MarGo(潇洒)回复于 2002-10-12 12:45:19 得分 0

高手!!!Top

相关问题

  • 优化sql语句
  • sql语句优化
  • SQL 语句优化
  • SQL语句优化问题
  • Sql语句优化问题
  • 如何优化SQL语句?
  • sql语句优化求教。
  • sql语句优化,急!
  • SQL查询语句优化
  • 优化一个SQL语句

关键词

  • 语句
  • 课程
  • 报表
  • bjdm
  • kcdm
  • cj
  • 及格率
  • 统计
  • 班级
  • 优秀率

得分解答快速导航

  • 帖主:MarGo
  • j9988

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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