如下表记录了学生的每次考试成绩要求编写SQL语句生成 每个学生的每个科目的考试成绩总和 
表格:
姓名    数学   英语 
张三      70    80
李四      70    80
张三      75    90
李四      60    70
求总分:
张三      145   170
李四      130   150

解决方案 »

  1.   

    select 姓名,sum(数学) as 数学总分,sum(英语) as 英语总分 from tb group by 姓名
      

  2.   

    select 姓名,sum(数学),sum(英语) from tablename group by 姓名
      

  3.   

    select 姓名,sum(数学) as 数学总分,sum(英语) as 英语总分 from tb group by 姓名
      

  4.   

    select 姓名,sum(数学),sum(英语) from tb group by 姓名
      

  5.   


    select 姓名,sum(数学),sum(英语) group by 姓名
      

  6.   


    create table T(姓名 varchar(10),数学 int,英语 int)
    insert into T select 
    '张三', 70, 80
    union all select '李四', 70, 80
    union all select '张三', 75, 90
    union all select '李四', 60, 70select 姓名,sum(数学) 数学,sum(英语) 英语 from t 
    group by 姓名drop table T--
    姓名     数学     英语
    李四 130 150
    张三 145 170
      

  7.   

    select 姓名,sum(数学) as 数学总分,sum(英语) as 英语总分 from tb group by 姓名
      

  8.   

    select 姓名,sum(数学),sum(英语) from tb group by 姓名
      

  9.   

    select 姓名,sum(数学) as 数学总分,sum(英语) as 英语总分 from tb group by 姓名
      

  10.   


    use ForTest
    go/*
    表格:
    姓名 数学 英语  
    张三 70 80
    李四 70 80
    张三 75 90
    李四 60 70
    求总分:
    张三 145 170
    李四 130 150
    */if OBJECT_ID('tb_v1','u')is not null
    drop table dbo.tb_v1
    gocreate table dbo.tb_v1(
    ID int identity
    constraint pk_tb_v1 primary key(ID)
    ,[姓名] nvarchar(10)
    ,[数学] int
    ,[英语] int
    )
    insert into dbo.tb_v1([姓名],[数学],[英语])
    select N'张三',70,80
    union all select N'李四',70,80
    union all select N'张三',75,90
    union all select N'李四',60,70
    goselect 
    [姓名]
    ,SUM([数学]) as [数学]
    ,SUM([英语]) as [英语] 
    from dbo.tb_v1 
    group by [姓名]
    order by Max(ID)