簡體   English   中英

如何從子查詢中的更新中返回多行?

[英]How to return multi-rows from an update in a sub-query?

我收到一個錯誤

子查詢返回超過 1 個值

我想使用我的子查詢將多個值返回到多行。 我認為 Use TOP 1不會是解決方案,因為這些值都是一樣的。 我應該如何修改我的代碼以返回我的總和 function 的多個值?

這是我的代碼:

UPDATE statistic 
SET Autumn_Credits = (SELECT SUM (modules.Module_Credits)
                      FROM student
                      INNER JOIN course ON student.CourseID = course.CourseID
                      INNER JOIN department ON course.DeptID = department.DeptID
                      INNER JOIN Modules ON department.DeptID = Modules.deptID
                      INNER JOIN Mark ON Modules.ModuleID = Mark.ModuleID 
                                      AND student.SID = Mark.SID
                      WHERE Modules.Session = 'Autumn UK'
                      GROUP BY Student.StudentID, student.Academic_Year)

大概你想要一個相關的子查詢。 假設您在statistic中每個學生/學年有一行:

update statistic
    set Autumn_Credits = (Select sum(modules.Module_Credits)
                          . . .
     
                          where statistic.StudentId = Student.StudentID and
                                statistic.Academic_Year = student.Academic_Year
                         )

請注意,這會更新statistic中的所有行。 如果行與子查詢不匹配,它們將獲得NULL值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM