我现在执行这几条这样的语句:
select 'yw' as km,count(*) as rs from yw union
select 'sx' as km,count(*) as rs from sx得到的是:
km        rs 
----   -------------
yw     1200
sx     3600我想得到这样的结果:
km        rs 
----   -------------
yw     1200
sx     3600
zs     4800求上面两个科目人数的总数,有谁能告诉我怎么写这个语句,谢谢

解决方案 »

  1.   

    select 'yw' as km,count(*) as rs from yw union 
    select 'sx' as km,count(*) as rs from sx union
    select 'zs',sum(rs) from 
    (select 'yw' as km,count(*) as rs from yw union 
    select 'sx' as km,count(*) as rs from sx )
      

  2.   

    declare @yw_rs int,@sx_rs int
    select @yw_rs = count(*) from yw 
    select @sx_rs = count(*) from sx 
    select 'yw' as km,@yw_rs as rs
    union all
    select 'sx' as sx,@sx_rs as rs
    union all
    select 'zs' as zs,@yw_rs+@sx_rs as rs
      

  3.   

    这样子写还是不行啊,提示在关键字'select'附近有语法错误
      

  4.   

    select 'yw' as km,count(*) as rs from yw union all
    select 'sx' as km,count(*) as rs from sx union all
    select 'zs',sum(rs) from
    (
        select 'yw' as km,count(*) as rs from yw union
        select 'sx' as km,count(*) as rs from sx 
    )as a
      

  5.   

    select 'yw' as km,count(*) as rs from yw union 
    select 'sx' as km,count(*) as rs from sx union 
    select 'zs',
    (select count(*) from yw + select count(*) from sx )
      

  6.   


    select 'yw' as km,count(*) as rs from yw union
    select 'sx' as km,count(*) as rs from sx union
    select 'zs',
    (select count(*) from yw) + (select count(*) from sx)  as rs
    改下也对.
      

  7.   

    select zs=when grouping(A.km)=1 then 'sx' else A.km end),A.rs from 
    (select 'yw' as km,count(*) as rs from yw union 
    select 'sx' as km,count(*) as rs from sx )A
      

  8.   

    select zs=case when grouping(A.km)=1 then 'sx' else A.km end,A.rs from 
    (select 'yw' as km,count(*) as rs from yw union 
    select 'sx' as km,count(*) as rs from sx )A
      

  9.   

    select km=case when grouping(A.km)=1 then 'sx' else A.km end,A.rs from 
    (select 'yw' as km,count(*) as rs from yw union 
    select 'sx' as km,count(*) as rs from sx )A