表1)
姓名,年龄,地址,班级(基本资料)
(表2)
姓名,语文,数学(每月测验成绩)
姓名是一样的,表2中的成绩有同一人有多次记录,现在做一个按班级查询的汇总表,要求报表中有,基本资料,语文,数学总成线,这样的SQL语句如何写,实在不知如何下手

解决方案 »

  1.   

    select
    t1.班级,sum(t2.语文) as 语文总成绩,sum(t2.数学) as 数学总成绩
    from 
    table1 t1
    join 
    table2 t2 on t1.姓名=t2.姓名
    group by t1.班级
      

  2.   

    没有明白你的意思,你是汇总总成绩,(像Roy_88的意思)还是按照分班,对班上同学的成绩进行汇总。
    如果是这个样子的话,其实就一个连接,如下:
    declare @Info table( 
    姓名 varchar(24)
    ,年龄 tinyint
    ,地址 varchar(100)
    ,班级 int) 
    declare @Score table(
    姓名 varchar(24)
    ,语文 int
    ,数学 int) insert into @Info
    values('a',23,'aa',1)
    insert into @Info
    values('b',24,'bb',2)
    insert into @Info
    values('c',24,'bb',1)insert into @Score
    values('a',89,78)
    insert into @Score
    values('a',89,78)insert into @Score
    values('b',34,78)
    insert into @Score
    values('c',34,78)
    insert into @Score
    values('c',34,78)
    select b.姓名,b.年龄,b.地址,b.班级,sum(a.语文) as 语文,sum(a.数学) as 数学
    from @Score as a 
    inner join @Info as b
    on a.姓名=b.姓名
    group by b.姓名,b.年龄,b.地址,b.班级
    order by b.班级 asc
      

  3.   

    select 姓名,年龄,地址,班级,语文总分,数学总分 from t1 a 
     left join
       (select 姓名 bname,sum(isnull(语文,0))语文总分,sum(isnull(数学,0))数学总分 from t2 group by name)B
      on a.姓名=b.bname 没有测试,大致是这样的。
      

  4.   

    有点错误,呵呵~~~
    第三行的group by name 应该是group by 姓名