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

如何使用另一个表值将sql语句写入新添加的列?,sql,sql-server,Sql,Sql Server,我有一个名为subject的表,并添加了一个新列stdCount 还有另一个名为注册的表格,列有学生id,科目,年份,分数。该表主要记录了每个学生注册的科目 现在,我需要从注册表中获取每个单元的学生人数,并更新主题表的stdCount列 我该怎么做 如果科目表中每个科目有一行,即使该科目在2年以上的时间内提供,并且您希望STDCOUNT显示所有时间内所有年份注册的学生总数: update subject s set stdcount = (select count(*)

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

还有另一个名为
注册
的表格,列有
学生id
科目
年份
分数
。该表主要记录了每个学生注册的科目

现在,我需要从
注册
表中获取每个单元的学生人数,并更新
主题
表的
stdCount


我该怎么做

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

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

如果科目表中每个科目和年份有一行(并且有一个年份列),并且您希望显示每个(科目,年份)组合中注册的学生总数:

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

是否更新该科目每年的平均学生人数?或者某一年该学科的学生人数?这是一个问题的例子,它将从样本数据和预期结果中受益匪浅。不,不需要任何年份说明@BrianDeMilia@Harshana主题表上有哪些列?该表上有年份列吗?@BrianDeMilia需要从单位表的studentCount更新主题表的stdCount列