私は学生のテーブルを持っており、各学生の出席情報でフィールドを更新したいと考えています。個人による集計によるテーブルの更新
私の素朴な試みは
UPDATE Student
SET CurrentAttendance = COUNT(AttendanceID)
FROM Student INNER JOIN Attendance ON Student.StudentID = Attendance.iStudentID
だったしかし、もちろん、あなたは集計を使用して更新することはできません。
私はこの解決策を見つけた:
UPDATE Student
SET CurrentAttendance = q.COUNTID
FROM (SELECT COUNT(AttenanceID) AS COUNTID
FROM Student INNER JOIN Attendance
ON Student.StudentID = Attendance.StudentID) q
これはエラーなしで実行されますが、それは明らかに間違っているのです。すべての生徒の出席回数は同じですが、すべて人です。
学生の出席者数が各学生に更新されるように、このアップデートを実行するにはどうすればよいですか?
UPDATE S
SET CurrentAttendance = AttendanceCount
FROM Student S
INNER JOIN (SELECT COUNT(AttendanceID) as AttendanceCount, StudentID
FROM Attendance
GROUP BY StudentID) A on A.StudentID = S.StudentID
まさに私が探していたもの!ありがとう。 –