在同一个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

没有登录不能评论