首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

此功能查询语句如何写

2013-10-16 
此功能查询语句怎么写举例 数据库结构大致才如下:表名:一班姓名职称张三土建工程师李四计算机工程师 王五

此功能查询语句怎么写
举例 数据库结构大致才如下:
表名:一班
姓名   职称
张三   土建工程师
李四   计算机工程师 
王五   土建工程师

表名:二班
姓名   职称
张三1   土建工程师
李四1   计算机工程师 
王五1   计算机工程师 

最终生成的表的结构如下:
 职称           一班人数  二班人数
土建工程师      2           1
计算机工程师    1            2

生成的表想用一句代码来实现  怎么实现 ?
[解决办法]
1.用
select 姓名, 职称, '一班' [班别] from 一班
union all
select 姓名, 职称, '二班' from 二班
使其成为一个表

2.用
select case 班别 when '一班' then count(*) else 0 end 一班人数,
case 班别 when '二班' then count(*) else 0 end 二班人数
这个技巧,将一班人数和二班人数分列

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

热点排行