注册 登录
编程论坛 SQL Server论坛

请教sql语句

棉花糖ONE 发布于 2006-08-10 17:57, 561 次点击

表:
专业 性别 寄宿
A 男 是
B 女 否
B 女 是

我要这样的结果:
专业 总人数 男生数 男寄宿生 女生数 女寄宿生
A 1 1 1 0 0
B 2 0 0 2 1

这样的SQL语句如何写?

4 回复
#2
a971912006-08-11 10:14
select 专业,(select count(*) from 表 where 专业=a.专业) as 总人数,(select count(*) from 表 where 专业=a.专业 and 性别='男') as 男生数 from 表 a
剩下都差不多这样
#3
棉花糖ONE2006-08-11 16:29

帮我写一下完整的吧,谢谢了

#4
棉花糖ONE2006-08-11 19:52

高手指教啊

#5
棉花糖ONE2007-03-01 23:57
select 专业,count(*) as 总人数,
sum(case 性别 when '男' then 1 else 0 end) as 男生数 ,
sum(case 性别 when '女' then 1 else 0 end) as 女生数,
sum(case rtrim(convert(varchar(20),寄宿))+rtrim(convert(varchar(20),性别))
when '是男' then 1 else 0 end) as 男寄宿生,
sum(case rtrim(convert(varchar(20),寄宿))+rtrim(convert(varchar(20),性别))
when '是女' then 1 else 0 end) as 女寄宿生 from student group by 专业
自己回来解答一下
1