已知:
 班级信息: id ,年级,班级
成绩信息表 :学号,年级,班级,总成绩。现在要在 存 分数段   高一01,高一02,高一03--------(有多少个班级,数据来自 表 班级信息里面的班级)
120-129
110-119
100-109
90-99
80-89 (由maxscore ,minscore和dis  决定有多少行)
至于里面填充的数据  先不考虑(用不到 成绩信息表)

解决方案 »

  1.   

    参照这样写select
    case when 总成绩 between 80 and 89 then '80-89'
    when 总成绩 between 90 and 99 then '90-99'
    when 总成绩 between 100 and 109 then '100-109'
    when 总成绩 between 110 and 119 then '110-119'
    when 总成绩 between 120 and 129 then '120-129'
    else '不在范围' end as 分数段, sum(case when 年级='高一' and 班级='01' then 1 else 0 end) as [高一01],
    sum(case when 年级='高一' and 班级='02' then 1 else 0 end) as [高一02],
    sum(case when 年级='高一' and 班级='03' then 1 else 0 end) as [高一03]from 成绩信息表
    group by 
    case when 总成绩 between 80 and 89 then '80-89'
    when 总成绩 between 90 and 99 then '90-99'
    when 总成绩 between 100 and 109 then '100-109'
    when 总成绩 between 110 and 119 then '110-119'
    when 总成绩 between 120 and 129 then '120-129'
    else '不在范围' end