我来吧 原来表结构 create table human (id,integer identity(1,1) primary key, 科室 varchar(30), 性别 varchar(2) )select 科室,女生数量=sum(t1.女生数量), 男生数量=sum(t1.男生数量), 总人数=sum(t1.男生数量)+sum(t1.女生数量), from ( select 科室, 女生数量=case when 性别=女生 then count(id) else 0 end, 男生数量=case when 性别=男生 then count(id) else 0 end from human group by 科室,性别 )t1 group by 科室以上仅仅是一个演示,具体要自己修改来用。不是所有的数据库都支持这种子查询和汉语列名称。具体情况具体对待。
数据库用ACCESS2000和SQL SERVER2000 表是病人记录,一行一个病人,统计各个月中各科室的男女病人数量。 表结构: keshi sex ... 结果最好是如下; yyyy mm keshi sum_male sum_female SQL好象不支持case when,上面的例子也没有按yyyymm年月统计
SQLServer:select convert(char(6),时间,112) 年月,科室,sum(case 性别 when '男' then 1 else 0 end) 男生数量,sum(case 性别 when '女' then 1 else 0 end) 女生数量,count(*) 总人数 from 表 group by convert(char(6),时间,112),科室
原来表结构
create table human
(id,integer identity(1,1) primary key,
科室 varchar(30),
性别 varchar(2)
)select 科室,女生数量=sum(t1.女生数量),
男生数量=sum(t1.男生数量),
总人数=sum(t1.男生数量)+sum(t1.女生数量),
from
(
select
科室,
女生数量=case when 性别=女生 then count(id) else 0 end,
男生数量=case when 性别=男生 then count(id) else 0 end
from human
group by 科室,性别
)t1
group by 科室以上仅仅是一个演示,具体要自己修改来用。不是所有的数据库都支持这种子查询和汉语列名称。具体情况具体对待。
表是病人记录,一行一个病人,统计各个月中各科室的男女病人数量。
表结构:
keshi
sex
...
结果最好是如下;
yyyy mm keshi sum_male sum_female
SQL好象不支持case when,上面的例子也没有按yyyymm年月统计