表名:
科任分析表结构:
科目,教师,班级,A等,B等,C等,D等,总人数,优秀数,及格数,优秀率,及格率,A比率,B比率,C比率,D比率,名次想求一tsql语句,给该表插入分组(按科目分组)汇总行,但是这个汇总不只是简单的sum。需要sum的列有:A等,B等,C等,D等,总人数,优秀数,及格数需要求比率(除法)的有:优秀率,及格率,A比率,B比率,C比率,D比率需要把值设为''(空字符串)的有:教师,班级需要把值设为null的有:名次

解决方案 »

  1.   

    insert 科任分析
    select 科目,教师='',班级='',sum(A等) as A等,sum(B等) as B等
      ,sum(C等) as C等,sum(D等) as D等,sum(总人数) as 总人数,sum(优秀数) as 优秀数,sum(及格数) as 及格数
      ,优秀率=1.0*sum(优秀数)/sum(总人数)
      ,及格率=1.0*sum(及格数)/sum(总人数)
      ,A比率=1.0*sum(A等)/sum(总人数)
      ,B比率=1.0*sum(B等)/sum(总人数)
      ,C比率=1.0*sum(C等)/sum(总人数)
      ,D比率=1.0*sum(D等)/sum(总人数)
      ,名次 = null
    from 科任分析
    group by 科目
      

  2.   

    insert 科任分析(科目,教师,班级,A等,B等,C等,D等,总人数,优秀数,及格数,优秀率,及格率,A比率,B比率,C比率,D比率,名次)
    select 科目,教师='',班级='',sum(A等) as A等,sum(B等) as B等
      ,sum(C等) as C等,sum(D等) as D等,sum(总人数) as 总人数,sum(优秀数) as 优秀数,sum(及格数) as 及格数
      ,优秀率=1.0*sum(优秀数)/sum(总人数)
      ,及格率=1.0*sum(及格数)/sum(总人数)
      ,A比率=1.0*sum(A等)/sum(总人数)
      ,B比率=1.0*sum(B等)/sum(总人数)
      ,C比率=1.0*sum(C等)/sum(总人数)
      ,D比率=1.0*sum(D等)/sum(总人数)
      ,名次 = null
    from 科任分析
    group by 科目