日期:2014-05-17  浏览次数:20371 次

sql 表的统计问题
班主任表1 id  姓名  班级  绩效分
         1   张三  2班    0
         2   李四  3班    0
学生表2   id  姓名  班组  绩效分
          1  王五  2班    2
          2  李六  2班    3
          3  张七  3班    1
          4  王八  4班    2
想把学生表的绩效统计到班主任表里
想要的结果是
统计好的表 id 姓名 班级 绩效分
          1  张三 2班 5
          2  李四 3班 3

------解决方案--------------------
select a.id,a.姓名,a.班级,
  isnull(b.绩效分,0) as绩效分
from 班主任表 a
left join 
 (select 班组,sum(绩效分) as 绩效分 from 学生表 group by 班组) b
on
 a.班级=b.班组

------解决方案--------------------
--更新
update a
set a.绩效分=b.绩效分
from 班主任表 a
join 
 (select 班组,sum(绩效分) as 绩效分 from 学生表 group by 班组) b
on
 a.班级=b.班组