我有两个表:
表一:t1姓名 班级 工资
张三 一班 1000
李四 一班 1200
王五 二班 1300表二:t2
姓名 班级 工资
马六 一班 1400
牛七 二班 1500我想得到如下的数据,按照总工资排序的班级:班级 总工资
一班 3600
二班 2800要按照总工资由大到小的排序。请问大家如何写上面的sql语句。谢谢!

解决方案 »

  1.   


    select 班级,sum(工资) as 总工资 from 
    (select * from table1 union all select * from table2)
    group by 班级
      

  2.   

    if object_id('t1') is not null
    drop table t1
    gocreate table t1
    (
    姓名 varchar(20),
    班级 varchar(20),
    工资 float
    )if object_id('t2') is not null
    drop table t2
    gocreate table t2
    (
    姓名 varchar(20),
    班级 varchar(20),
    工资 float
    )
    go
    insert into t1
    select '张三','一班',1000 union all
    select '李四','一班',1200 union all
    select '王五','二班',1300
    insert into t2
    select '马六','一班',1400
    union all select '牛七','二班',1500
    goselect 班级,sum(工资) 工资
    from 
    (
    select * from t1
    union all
    select * from t2
    )
    as tb group by  班级 order by 工资 desc
    班级                   工资
    -------------------- ----------------------
    一班                   3600
    二班                   2800(2 行受影响)