[英]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.