Я пытаюсь вставить строки в таблицу Attendance_Check на основе количества учеников в связанном классе.Для каждого учащегося в классе у него должна быть строка в таблице Participance_check.
Соответствующие таблицы включают: Attendance_Record, Att_Check, Student и Class
declare @i int;
/* 1. Create a new Record for specified class and date*/
INSERT INTO Attendance_Record (Class_ID, Att_Date)
VALUES('1', GETDATE()); /* insert class_ID for the class the teacher is recording attendance for)*/
SELECT @i= SCOPE_IDENTITY();
INSERT INTO Att_Check (Att_ID, Stu_ID)
VALUES((SELECT @i), (SELECT S.Stu_ID
FROM Student S
INNER JOIN Class C
ON S.Class_ID=C.Class_ID
WHERE C.Class_ID='1'))
Этот код пытается заполнитьв таблицах посещаемости с идентификатором посещаемости, который соответствует классу 1, и учащимися, принадлежащими к классу 1.
В настоящее время это только дает мне ошибку, что подзапрос вернул более одного значения.Я понимаю, почему это так, но мне трудно думать о том, как переписать код, чтобы обойти его.Я бы хотел, чтобы результаты заканчивались так:
Attendance Record Table
Att_ID | Class_ID | Date
1 1 10/10/2019
Attendance Check Table
Att_ID| Stu_ID | Stu_Status
1 1
1 2
1 3