在同一个sql语句中写不同条件的Count数量 类似select count(1),count(2),count(3) from 表 每列都有不同条件的 count组成
其实有count很难实现
可以用sum 去实现它
例子如下
select xy, sum(case when jw_cljgh=1 then 1 else 0 end) as 留级,sum(case when jw_cljgh=2 then 1 else 0 end) as 复学 from xjgl,bjsjk where xjgl.bh=bjsjk.bh group by xy
所用到的表
表名: xjgl
概要说明: 学生违纪、异动信息表
主键: (xsid、sj、jw_cljgh)
候选码:(xh、sj、jw_cljgh)
副键/外键:
字段名
数据类型
key
能否为空
中文名称
资料来源
xsid
int(4)
不能
学生标识号
xh
varchar(10)
不能
学号
学号第1-2位为年级,3-4位为专业,第5位为层次(1研究生、2普通本科、3普通专科、4成教本科、5成教专科、6成教专升本、7成教高升专、8国际学院、9专升本),第6位为班级,7-9为序列号。一般学号的前6位为班号(有学籍异动的学生除外)。
xm
varchar(24)
姓名
xn
varchar(4)
不能
年度
2008、2009等
xq
int
不能
学期
1、2、3、4
bh
varchar(8)
当前所在班号
sj
datetime(8)
不能
时间
违纪或异动下文时间
shij
varchar(1024)
事件
jw_cljgh
varchar(2)
不能
处理结果编号
01:休学 02:复学 03:转入 04:转出 05:留级 06:保留学籍 07:退学 08:停学 09:劝其退学 10:自动退学11:死亡 12:警告处分13:记过处分 14:记大过处分 15:留校察看 16:开除学籍 17:勒令退学
cljg
varchar(50)
处理结果
cldw
varchar(30)
处理单位
表名: 班级信息表(bjsjk)
概要说明:存放班级相关信息
主键
副键/外键
字段名
数据类型
key
能否为空
中文名称
资料来源
id
int(4)
Y
not
表ID
唯一
bh
varchar(10)
not
班级编号
bjmc
varchar(50)
班级名称
xy
varchar(20)
所属单位名称
skxq
varchar(100)
上课校区
1:中心校区
2:咸安校区
bjrs
Int(4)
班级人数
xz
int(1)
学制
3,4,5,6
jw_xybh
varchar(1)
学院编号
部门信息表
sszybh
Varchar(10)
所属专业编号
最后执行的结果
类似
留级 复学
医学院 104 4
计算机学院 5 35