下面是一个表的数据:
----------------------
期  课程编号  每班人数  开设班数  教材费(每人)   培训费(每人)
--  --------  --------  --------  -----------    ------------
0601 2053265   25          3        10              20
0601 2084568   20          2         5              15
0601 2205986   15          2        20              30
0602 8956898   10          3        10              10
0602 7562455   10          5        15              10
------------------------------------------------------------------------------------
下面求一句sql语句生成如下结果:期     课程数量     在读人数    应收费用
--     --------     ---------   --------
0601      3           145        4500
0602      2           80         1850
------------------------------------------------------------------------

解决方案 »

  1.   

    SELECT 
        期,
        sum(课程编号) as 课程数量,
        sum(每班人数*开设班数) as 在读人数,
        sum(每班人数*开设班数*([教材费(每人)]+[培训费(每人)]) as 应收费用
    GROUP BY 期
      

  2.   

    select a.期 , a.课程数量 , b.应收费用
    (select 期 , count(*) as 课程数量 from tb group by 期) as a
    (select 期 , sum(每班人数*开设班数(教材费(每人)+培训费(每人))) as 应收费用 from tb group by 期) b
    where a.期 = b.期
      

  3.   

    select 期,
      count(课程编号) as 课程数量,
      sum(每班人数*开设班数) as 在读人数,
      sum(每班人数*开设班数*(教材费+培训费)) as 应收费用
    from  T
    group by 期
      

  4.   

    select 期,count(课程编号) as 课程数量,sum(每班人数)*sum(开设班数) as 在读人数,sum(每班人数*教材费+每班人数*培训费) as 应收费用 from teblename group by 期
      

  5.   

    select a.期 , a.课程数量 , b.在读人数, b.应收费用
    (select 期 , count(*) as 课程数量 from tb group by 期) as a
    (select 期 , sum(每班人数*开设班数) as 在读人数, sum(每班人数*开设班数(教材费(每人)+培训费(每人))) as 应收费用 from tb group by 期) b
    where a.期 = b.期
      

  6.   

    select 期,课程数量=count(期),在读人数=sum(每班人数*开设班数),应收费用=sum(每班人数*开设班数*(教材费+培训费))
    from test  group by 期