sql 文求 sqlserver 20songweida8076]

发布时间:2014-1-1 0:09:47
来源:分享查询网

表A  id name 工资 部门 1 aa 2000 开发 2 bb 3000 销售 3 cc 2000 开发 4 dd 5000 销售 5 ee 8000 技术 6 ff 3500 技术 实现成  部门 2000~4000 4001~6000 6001~8000 开发 2人 0人 0人 销售 1人 1人 0人 技术 0人 0人 2人

没人回,那我回一下吧 --> 测试数据:# if object_id('tempdb.dbo.#') is not null drop table # create table #(id int, name varchar(8), 工资 int, 部门 varchar(8)) insert into # select 1, 'aa', 2000, '开发' union all select 2, 'bb', 3000, '销售' union all select 3, 'cc', 2000, '开发' union all select 4, 'dd', 5000, '销售' union all select 5, 'ee', 8000, '技术' union all select 6, 'ff', 3500, '技术' select 部门, count(case when 工资 between 2000 and 4000 then 1 end)[2000~4000], count(case when 工资 between 4001 and 6000 then 1 end)[4001~6000], count(case when 工资 between 6001 and 8000 then 1 end)[6001~8000] from # group by 部门 /* 部门     2000~4000   4001~6000   6001~8000 -------- ----------- ----------- ----------- 技术     1           0           1 开发     2           0           0 销售     1           1           0 */

该回复于2011-02-26 08:35:34被版主删除

 select 部门,     sum(case when 工资 between 2000 and 4000 then 1 else 0 end)[2000~4000],     sum(case when 工资 between 4001 and 6000 then 1 else 0 end)[4001~6000],     sum(case when 工资 between 6001 and 8000 then 1 else 0 end)[6001~8000] from tb group by 部门

use tempdb; /* create table A ( id int not null, name varchar(10) not null, [工资] int not null, [部门] nvarchar(10) not null ); insert into A(id,name,[工资],[部门]) values (1,'aa',2000,'开发'), (2,'bb',3000,'销售'), (3,'cc',2000,'开发'), (4,'dd',5000,'销售'), (5,'ee',8000,'技术'), (6,'ff',3500,'技术'); */ select [部门], COUNT(case when A.[工资] between 2000 and 4000 then 1 end) as [2000~4000], COUNT(case when A.[工资] between 4001 and 6000 then 1 end) as [4001~6000], COUNT(case when A.[工资] between 6001 and 8000 then 1 end) as [6001~8000] from A group by [部门];

返回顶部
查看电脑版