问题描述:
  表AA里有 040111301224 邓建浩 2007229784 300(学号,姓名,号码,收费金额) 
  040111301224 邓建浩 2007238955 300 (在这个表里2007238955是主键,可能有多条学号相同的数据)
  表BB里有 040111301224 邓建浩 08计本一班 (040111301224是这个表里的主键)
  表CC里有 08计本一班 学期 2000 200 (班级,金额1,金额2。这里08计本一班 学期是一个主键,也有多条数据)  问题是:我怎么得到学号、姓名、班级 收费金额总和 金额1总和 金额2总和 我得到的结果不对,帮看下谢谢
  
select stuinfo.stunumber,stuinfo.stuname,stuinfo.classname,sum(chargeinfo.chargemoney),
sum(chargestandardinfo.tuition),sum(chargestandardinfo.bookfee) 
from stuinfo,chargeinfo,chargestandardinfo
where stuinfo.stunumber=chargeinfo.stunumber and stuinfo.classname=chargestandardinfo.classname and 1=1
group by
chargeinfo.chargemoney,chargestandardinfo.tuition,chargestandardinfo.bookfee,stuinfo.stunumber,stuinfo.stuname,stuinfo.classname 
040111400410 谢文清 08法学(函)本 600.0000 2600.0000 600.0000
040111400603 李泽林 08法学(函)本 600.0000 2600.0000 600.0000
040111401802 欧吉 08法学(函)本 600.0000 2600.0000 600.0000  
040111402116 冼慧萍 08法学(函)本 600.0000 2600.0000 600.0000
040111300815 黄灿艺 08法律事务(函)专 600.0000 4000.0000 .0000
040111301017 黄大泽 08法律事务(函)专 300.0000 2000.0000 .0000
040111301113 李嘉源 08法律事务(函)专 600.0000 4000.0000 .0000
040111301122 黄广鸿 08法律事务(函)专 600.0000 4000.0000 .0000
  
 我得到的第五列的数据有错,不知道怎么会这样,要是没有加上sum的话就得到的是相同学号的多条数据,怎么把相同学号的金额加起来?
  就查询到这样的数据,怎么把相同学号的金额起来?

解决方案 »

  1.   

    最好给出完整的表结构,测试数据,计算方法和正确结果.发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
      

  2.   

    就查询到这样的数据,怎么把相同学号的金额起来?按学号分组,然后求金额的和。select 学号,sum(金额) as 总金额 from table group by 学号
      

  3.   

    "GROUP BY"次序好象不对,试试这个:group by
    stuinfo.stunumber,stuinfo.stuname,stuinfo.classname,chargeinfo.chargemoney,chargestandardinfo.tuition,chargestandardinfo.bookfee,
      

  4.   

    --写了个大概!select b.学号,b.姓名,b.班级,b.总收费金额,c.总金额1,c.总金额2 from 
    (select distinct 学号,姓名,班级,总收费金额 from (select 学号,姓名,sum(收费金额) as 总收费金额 from AA group by 学号,姓名 ) as a inner join BB on a.学号=BB.学号 and a.姓名=bb.姓名) as b
    (select 班级,学期, sum(金额1) as 总金额1,sum(金额2) as 总金额1  from CC group by 班级,学期 ) as c 
    on b.班级=c.班级