举例:一个单位有A个车间,每个车间有B个生产小组,按性别统计各个车间中每个小组的人数表格式: 人名 所属小组 所属车间 性别输出: 车间 小组名称 总人数 男 女
A1 A1B1 5 2 3
A1 A1B2 6 1 5
A2 A2B1 4 2 2
A2 A2B2 7 3 4像这种的SQL查询语句怎么写啊?头大啊!!!
A1 A1B1 5 2 3
A1 A1B2 6 1 5
A2 A2B1 4 2 2
A2 A2B2 7 3 4像这种的SQL查询语句怎么写啊?头大啊!!!
sum(case 性别 when '男' then 1 end) as 男,
sum(case 性别 when '女' then 1 end) as 女
from 表
group by 所属车间,所属小组
所属小组 小组名称,
COUNT(1) 总人数,
SUM(CASE 性别 WHEN '男' THEN 1 ELSE 0 END) 男,
SUM(CASE 性别 WHEN '女' THEN 1 ELSE 0 END) 女
FROM TB
GROUP BY 所属车间,所属小组
所属车间 as 车间,
所属小组 as 小组名称,
count(1) 总人数,
sum(case 性别 when '男' then 1 else 0 end) as 男,
sum(case 性别 when '女' then 1 else 0 end) as 女
from
tb
group by
所属车间,所属小组
所属小组 小组名称,
COUNT(1) 总人数,
SUM(CASE 性别 WHEN '男' THEN 1 ELSE 0 END) 男,
SUM(CASE 性别 WHEN '女' THEN 1 ELSE 0 END) 女
FROM TB
GROUP BY 所属车间,所属小组SELECT 所属车间 车间,
所属小组 小组名称,
总人数 = (SELECT COUNT(1) FROM TB WHERE 所属车间 = T.所属车间 AND 所属小组 = T.所属小组) ,
男 = isnull((SELECT COUNT(1) FROM TB WHERE 所属车间 = T.所属车间 AND 所属小组 = T.所属小组 AND 性别 = '男'),0) ,
女 = isnull((SELECT COUNT(1) FROM TB WHERE 所属车间 = T.所属车间 AND 所属小组 = T.所属小组 AND 性别 = '女'),0)
FROM TB
GROUP BY 所属车间,所属小组
sum(case 性别 when '男' then 1 end) as 男,
sum(case 性别 when '女' then 1 end) as 女
from 表
group by 所属车间,所属小组
所属车间 as 车间,
所属小组 as 小组名称,
sum(1) 总人数,
sum(case 性别 when '男' then 1 else 0 end) as 男,
sum(case 性别 when '女' then 1 else 0 end) as 女
from tb
group by 所属车间,所属小组