我用SQL:
select name,count(数学) as sx,count(语文) as yw from table1 group by name
union all
select name,count(数学) as sx,count(语文) as yw from table2 group by name
得到的结果为:
name    sx     yw
aaa     45     50
bbb     50     56
aaa     50     40我现在想把名字一样的成绩相加,上面的SQL如何改?变成:
name    sx     yw
aaa     95     90
bbb     50     56

解决方案 »

  1.   

    select name, sum(sx) as sx, sum(yw) as yw from 
    (
    select name,count(数学) as sx,count(语文) as yw from table1 group by name
    union all
    select name,count(数学) as sx,count(语文) as yw from table2 group by name
    ) table0
    group by name
      

  2.   

    table0是什么意思?我就用的这个方法(没有table0) ,但是出现错误:')'附近有错误
      

  3.   

    lz试一下,下面的语句可以吗
    select name,count(数学) as sx,count(语文) as yw from table1,table2 group by name
      

  4.   

    要求是下面的两张表table1和table2的column相同
    select name,count(数学) as sx,count(语文) as yw from table1,table2 group by name
      

  5.   

    hyena041(陷入自己的思维中,找不到自己了) ( ) 信誉:98 不行,列名'name'不明确
      

  6.   

    呵呵,想把两张表当作一张表来处理的
    看来不行啊
    还是需要嵌套
    select a.name,count(a.数学) as sx,count(a.语文) as yw from (select * from table1,table2) as a group by a.name
      

  7.   

    不只两个表,而且每个表还有不同的条件,开始我想用 skywind_jk(skywind) ( ) 信誉:100 的方法,但是没有成功。
      

  8.   

    skywind_jk(skywind) ( )的方法就可以阿
      

  9.   

    select name,count([id]) as sx,count(num) as yw 
    from 
    (select a.id,a.name,a.num from t1 as a  union all select b.id,b.name,b.num from  t2 as b ) 
     c
     group by name
    执行正确两张表结构相同 表结构为
    CREATE TABLE [t1] (
    [id] [int] NULL ,
    [name] [char] (100) COLLATE Japanese_CI_AS NULL ,
    [num] [int] NULL 
    ) ON [PRIMARY]
    GO