日期:2014-05-18 浏览次数:20470 次
create table tbscore ( schoolname varchar(20) , stuname varchar(20), coursename varchar(10), score int, testname varchar(60), termname varchar(10) ) insert into tbscore select '金华四中','s1','数学',99,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s2','数学',98,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s3','数学',97,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s4','数学',96,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s5','数学',30,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s1','语文',99,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s2','语文',98,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s3','语文',97,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s4','语文',96,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华四中','s5','语文',32,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w1','数学',99,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w2','数学',98,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w3','数学',97,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w4','数学',96,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w5','数学',40,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w1','语文',99,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w2','语文',98,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w3','语文',97,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w4','语文',96,'2009年6月份婺城区初一年级各学校摸底考试','初一' union select '金华五中','w5','语文',42,'2009年6月份婺城区初一年级各学校摸底考试','初一' -------------------------------------------------------- 分数段 社会 语文 数学 科学 英语 0-29 0 0 0 0 0 30-39 0 1 1 0 0 40-49 0 1 1 0 0 50-59 0 0 0 0 0 60-69 0 0 0 0 0 70-79 0 0 0 0 0 80-89 0 0 0 0 0 90-99 0 8 8 0 0 100-109 0 0 0 0 0 110-119 0 0 0 0 0 120-129 0 0 0 0 0 130-139 以下全是0 140-149 150-159 160-169 170-179 180-189 190-200 合计 0 10 10 0 0 ------------------------- ↑ 笔算正确结果 每个分数段都是算所有学校的学生加在一起,高手帮忙。
--中间部分自己补上 select '[0-29]'分数段, sum(case when coursename=N'社会' and score between 0 and 29 then 1 else 0 end)社会, sum(case when coursename=N'语文' and score between 0 and 29 then 1 else 0 end)语文, sum(case when coursename=N'科学' and score between 0 and 29 then 1 else 0 end)科学, sum(case when coursename=N'数学' and score between 0 and 29 then 1 else 0 end)数学, sum(case when coursename=N'英语' and score between 0 and 29 then 1 else 0 end)英语 from tbscore union all select '[30-39]'分数段, sum(case when coursename=N'社会' and score between 30 and 39 then 1 else 0 end)社会, sum(case when coursename=N'语文' and score between 30 and 39 then 1 else 0 end)语文, sum(case when coursename=N'科学' and score between 30 and 39 then 1 else 0 end)科学, sum(case when coursename=N'数学' and score between 30 and 39 then 1 else 0 end)数学, sum(case when coursename=N'英语' and score between 30 and 39 then 1 else 0 end)英语 from tbscore union all select '[40-49]'分数段, sum(case when coursename=N'社会' and score between 40 and 49 then 1 else 0 end)社会, sum(case when coursename=N'语文' and score between 40 and 49 then 1 else 0 end)语文, sum(case when coursename=N'科学' and score between 40 and 49 then 1 else 0 end)科学, sum(case when coursename=N'数学' and score between 40 and 49 then 1 else 0 end)数学, sum(case when coursename=N'英语' and score between 40 and 49 then 1 else 0 end)英语 from tbscore ..