Список число студентов, обучающихся по каждому коду модуля:SQL Оператор Select с кол-модулей
У меня возникли проблемы с этим запросом, что я ищу, чтобы сделать это отборное заявление, например
select count(studID) from student where ModCode = 'C102'
Предполагаемый вывод будет представлять заголовок имени модуля и под числом студентов, которые связаны с этим модулем. Если возможно, я хочу сразу включить все модули на выходе.
Состав:
CREATE TABLE Student
(StudID INTEGER PRIMARY KEY,
StudFName VARCHAR(10) NOT NULL,
StudLName VARCHAR(10) NOT NULL,
DoB DATE NOT NULL,
Sex CHAR(1) NOT NULL CHECK (Sex IN ('M', 'F')),
Email VARCHAR(30) UNIQUE);
CREATE TABLE Module
(ModCode CHAR(4) PRIMARY KEY,
ModName VARCHAR(25) NOT NULL,
ModCredits INTEGER NOT NULL CHECK (ModCredits IN (15, 30, 45, 60)),
ModLevel CHAR(3) NOT NULL CHECK (ModLevel IN ('UG1', 'UG2', 'UG3', 'MSc')),
ModLeader INTEGER NOT NULL,
Foreign Key (ModLeader) REFERENCES Staff (StaffID));
INSERT INTO Module VALUES ('C102', 'Java Fundamentals', 15, 'UG1', 108);
INSERT INTO Module VALUES ('C104', 'Oracle Fundamentals', 15, 'UG1', 100);
INSERT INTO Module VALUES ('E109', 'RF Circuit Design', 30, 'UG1', 102);
INSERT INTO Module VALUES ('E203', 'Side-Scan Sonar', 15, 'UG2', 104);
INSERT INTO Module VALUES ('C201', 'Database Applications', 15, 'UG2', 100);
INSERT INTO Module VALUES ('R209', 'Artificial Intelligence 1', 30, 'UG2', 105);
INSERT INTO Module VALUES ('C212', 'Advanced Java Apps', 15, 'UG2', 108);
INSERT INTO Module VALUES ('N205', 'Cisco Switches', 15, 'UG2', 109);
INSERT INTO Module VALUES ('C303', 'Database Administration', 30, 'UG3', 100);
INSERT INTO Module VALUES ('R310', 'Autonomous Botnets', 30, 'UG3', 106);
CREATE TABLE Enrolment
(ModCode CHAR(4) NOT NULL,
StudID INTEGER NOT NULL,
StartDate DATE NOT NULL,
PRIMARY KEY (ModCode, StudID),
Foreign Key (StudID) REFERENCES Student (StudID),
Foreign Key (ModCode) REFERENCES Module (ModCode));
Есть ли справочная таблица, которая определяет, какие студенты находятся в каких модулях? Из таблиц, которые вы опубликовали, не похоже, что есть какой-либо способ определить, какие учащиеся находятся в определенном модуле. –
добавили данные, введенные в таблицу модулей – James
У вас возникли проблемы с каким запросом? Кроме того, @mtinsley задал хороший вопрос, просьба дать ответ на это. –