举例 数据库结构大致才如下:
表名:一班
姓名   职称
张三   土建工程师
李四   计算机工程师 
王五   土建工程师表名:二班
姓名   职称
张三1   土建工程师
李四1   计算机工程师 
王五1   计算机工程师 最终生成的表的结构如下:
 职称           一班人数  二班人数
土建工程师      2           1
计算机工程师    1            2生成的表想用一句代码来实现  怎么实现 ?

解决方案 »

  1.   

    1.用
    select 姓名, 职称, '一班' [班别] from 一班
    union all
    select 姓名, 职称, '二班' from 二班
    使其成为一个表2.用
    select case 班别 when '一班' then count(*) else 0 end 一班人数,
    case 班别 when '二班' then count(*) else 0 end 二班人数
    这个技巧,将一班人数和二班人数分列
      

  2.   

    select isnull(a.职称, b.职称) 职称, 一班人数, 二班人数 from 
    (select 职称, count(*) 一班人数 from 一班 group by 职称) a
    full join
    (select 职称, count(*) 二班人数 from 二班 group by 职称) b
    on a.职称=b.职称