回 帖 发 新 帖 刷新版面

主题:求sql语句

表1                             表2
学号|姓名|                   学号|评定|  //每次都会评定,打分:优,良,中,及格
实现以下查询:统计每个人的情况,如:统计个数
学号| 姓名| 优| 良| 中| 及格
11    XX    5   3   2    0

回复列表 (共3个回复)

沙发

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

板凳

感觉奇怪 :(

3 楼

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 学号

我来回复

您尚未登录,请登录后再回复。点此登录或注册