ClassID ClassName StuName CourseID SumScore   Term
C2 007班 sc C0001 98 2001
C1 008班 shl C0001 98 2008
C1 008班 sa C0002 78 2009
C2 007班 sc C0002 98 2009
C2 007班 sh C0002 78 2009
C1 008班 shc C0002 98 2009
C1 008班 sa C0003 98 2007
C2 007班 sh C0003 98 2009
C1 008班 shx C0003 87 2007能不能求出某个学生某年的课程成绩的总分:如:
求 sh 09年的 C0002和C0003的总分

解决方案 »

  1.   

    sum(分数) group by 学生
      

  2.   


    select 
    StuName as 学生名,ClassName as 班级,Term as 学年,sum(SumScore) as 课程总分
    from 表 group by ClassName ,StuName ,Term 
      

  3.   

    create table #aa (ClassID varchar(10),ClassName varchar(20),StuName varchar(10), 
            CourseID varchar(10), SumScore int,  Term varchar(20))
    insert #aa
    select 'C2', '007班', 'sc', 'C0001',  98, '2001' 
    union all select 'C1', '008班', 'shl', 'C0001', 98, '2008' 
    union all select 'C1', '008班', 'sa', 'C0002',  78, '2009' 
    union all select 'C2', '007班', 'sc', 'C0002',  98, '2009' 
    union all select 'C2', '007班', 'sh', 'C0002',  78, '2009' 
    union all select 'C1', '008班', 'shc', 'C0002', 98, '2009' 
    union all select 'C1', '008班', 'sa', 'C0003',  98, '2007' 
    union all select 'C2', '007班', 'sh', 'C0003',  98, '2009' 
    union all select 'C1', '008班', 'shx', 'C0003', 87, '2007'--统计每年每个学生所有课程的总分(不知楼主是不是这个意思)
    select stuname,term,SUM(sumscore)
      from #aa
      group by stuname,term
      

  4.   


    恩,自己写的,也解决了!
    select ClassInfo.ClassID,CourseID ,sum(Score) as SumScore,term from ScoreInfo,ClassInfo
    --where 
    group by CourseID ,ClassInfo.ClassID,term