现在有4张表,其记录如下:                        表1:学生表 学生编号   测验方式区分    测验学科编号   测验区分   合格判定区分 
------------------------------------------------------------------------------------------
 00001                1                1              1                0
 00002                1                1              0                0
 00003                2                1              1                1
 00004                2                2              1                1
 00005                2                2              0                0
 00006                3                3              1                1
 00007                3                3              1                0
 00008                1                4              1                1
 00009                3                5              0                0
 00010                3                4              1                1
------------------------------------------------------------------------------------------
字段说明:
  学生编号(PK)
  测验方式区分(外键,与测验方式表关联)
  测验学科编号(外键,与学科表关联)
  测验区分(0值表示缺席测验,1表示参加了测验)
  合格判定区分(0值表示测验不合格,1表示测验合格)                          表2:测验方式表 测验方式区分      测验方式
----------------------------------------------------------------------------
     1                 一般
     2                年中考
     3                年终考
     4                升学考
----------------------------------------------------------------------------字段说明:
  测验方式区分(PK)
                           表3:学科表 学科编号   学科名称      隶属学部
----------------------------------------------------------------------------
   1            会计           1
   2            英语           2
   3            几何           3
   4            物理           3
   5            日语           2
   6            法语           2
   7            音乐           5
   8            德育           5
----------------------------------------------------------------------------字段说明:
  学科编号(PK)
  隶属学部(外键,与学部表关联,表示该门学科所隶属的学部)                         表4:学部表 学部编号      学部名称
----------------------------------------------------------------------------
   1             经济部
   2             外语部
   3             数理部
   4             外贸部
   5             文艺部
----------------------------------------------------------------------------字段说明:
  学部编号(PK)以上面表中的记录为准,统计学生表中在不同的测验方式下,不同的学部下的学生测验状况,要求查出如下形式:
说明:下面的学生数是指应该参加某门学科测验的学生数
     实测数(实际参加测试的人数)=学生数-缺席测验人数
     倍率=实际参加测试的人数/合格者人数测验方式 学部  学科 学生数 实测数 合格者数  倍率
-----------------------------------------------------------------------------------------
                    会计     2          1         0         1/0
          经济部-------------------------------------------------------------------------
                    小计     2          1         0         1/0
        ---------------------------------------------------------------------------------
                    物理     1          1         1         1/1
一般     数理部-------------------------------------------------------------------------
                    小计     1          1         1         1/1
        ---------------------------------------------------------------------------------
           合计              3          2         1         2/1
-----------------------------------------------------------------------------------------
                    会计     1          1         1         1/1
          经济部-------------------------------------------------------------------------
                    小计     1          1         1         1/1
年中考  ----------------------------------------------------------------------------------
                    英语     2          1         1         1/1
          外语部 ------------------------------------------------------------------------
                    小计     2          1         1         1/1
        ---------------------------------------------------------------------------------
           合计              3          2         2         2/2
-----------------------------------------------------------------------------------------
                    几何     2          2         1         2/1
                  ----------------------------------------------------------------------
          数理部 物理     1          1         1         1/1
                  ----------------------------------------------------------------------
                    小计     3          3         2         3/2
年终考  --------------------------------------------------------------------------------- 
                    日语     1          0         0         0/0
          外语部 ------------------------------------------------------------------------
                    小计     1          0         0         0/0
        ---------------------------------------------------------------------------------
           合计              4          3         2         3/2
-----------------------------------------------------------------------------------------

解决方案 »

  1.   

    不做作业,自己想想,这个不难的,小计,合计部分可以看看oracle的分析函数
      

  2.   

    不是作业的~~  我很长时间没有接触SQL(偶不是弄DBMS的),现在突然让我弄这个,我本来是想通过SQL结合程序代码来实现的,但是有点把简单的事情搞复杂的味道~  我现在也没有时间去捡SQL,所以还请大家帮忙!~
      

  3.   

    表1:学生表(t1)
    字段说明:
      学生编号(PK)
      测验方式区分(外键,与测验方式表关联)
      测验学科编号(外键,与学科表关联)
      测验区分(0值表示缺席测验,1表示参加了测验)
      合格判定区分(0值表示测验不合格,1表示测验合格)表2:测验方式表(t2)
      测验方式区分(PK)
      测验方式表3:学科表(t3)
      学科编号(PK)
      学科名称
      隶属学部(外键,与学部表关联,表示该门学科所隶属的学部)表4:学部表(t4)
      学部编号
      学部名称select t2.测验方式,
           t4.学部名称,
           t3.学科名称,
           count(t1.学生编号) 学生数,
           sum(case when t1.测验区分 then 1 else 0 end) 实测数,
           sum(case when t1.合格判定区分 then 1 else 0 end) 合格者数,
           sum(case when t1.测验区分 then 1 else 0 end) /
           sum(case when t1.合格判定区分 then 1 else 0 end) 倍率
       from t1
       join t2 on t1.测验方式区分 = t2.测验方式区分
       join t3 on t1.学科编号 = t3.学科编号
       join t4 on t3.隶属学部 = t4.学部编号
    group by t2.测验方式, t4.学部名称, t3.学科名称
           
      

  4.   

    好像group by有一个类似的用法