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

问题描述:

我有表subject,我添加了一个新列stdCount如何使用另一个表值将sql语句写入新添加的列?

有一个叫enrollments与列student_idsubjectyearmarks另一个表。主要适用于每一个科目,他或她的学生该表中的记录是参加。

现在我需要让学生从enrollments表计数各单位和更新subject表的stdCount列。

我该怎么做?

+0

与更新该科目每年的平均学生人数?或者某个特定年份的该科目的学生人数? – 2014-09-29 01:37:39

+1

这是一个可以从样本数据和预期结果中大大受益的问题示例。 – 2014-09-29 01:38:12

+0

不需要任何年份规范... @BrianDeMilia – Harshana 2014-09-29 01:41:35

如果主体表中有每科一行,即使被摄体在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) 
+0

唉这是工作:)谢谢 – Harshana 2014-09-29 01:51:27