如何用另一个表值将sql语句写入新添加的列?

时间:2014-09-29 01:32:23

标签: sql sql-server

我有一个名为subject的表格,我添加了一个新列stdCount

还有一个名为enrollments的表,其中包含student_idsubjectyearmarks列。主要是这个表记录了每个学生他或她注册的科目。

现在,我需要从enrollments表中获取每个单元的学生计数,并更新subject表的stdCount列。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果SUBJECT表每个主题有一行,即使该主题在2年以上提供,并且您希望STDCOUNT显示在所有年份中注册的学生总数:

update subject s
   set stdcount =
       (select count(*)
          from enrollments e
         where e.subject = s.subject)

如果SUBJECT表每个主题和年份有一行(并且有年份列),并且您想要显示每个(主题,年份)组合中注册的学生总数:

update subject s
   set stdcount =
       (select count(*)
          from enrollments e
         where e.subject = s.subject
           and e.year = s.year)