主题:求sql语句
triumph
[专家分:160] 发布于 2006-04-16 11:36:00
表1 表2
学号|姓名| 学号|评定| //每次都会评定,打分:优,良,中,及格
实现以下查询:统计每个人的情况,如:统计个数
学号| 姓名| 优| 良| 中| 及格
11 XX 5 3 2 0
回复列表 (共3个回复)
沙发
cwb1128 [专家分:3120] 发布于 2006-04-17 18:57:00
select * ,
优=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='优' ),
良=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='良' ),
中=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='中' ),
差=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='差' )
from 表1
板凳
aniude [专家分:430] 发布于 2006-04-21 21:43:00
感觉奇怪 :(
3 楼
rr5566 [专家分:460] 发布于 2006-05-11 10:10:00
select * ,count(评定)
优=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='优' ),
良=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='良' ),
中=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='中' ),
差=(select count(*) from 表2 where 表2.学号=表1.学号 and 表2.评定='差' )
from 表1
order by 学号
group by 学号
compute 评定 by 学号
我来回复