Я не уверен, правильно ли объясняется вопрос в названии, но я постараюсь быть максимально ясным. Я не очень опытен в SQL.
В основном у меня есть база данных, которая имеет следующие таблицы:
Школа, Мастерская, Мастерская_История, Участники.
Участник принадлежит к одной школе,
Так что в одной школе много участников.
Таблица Мастерская показывает подробную информацию о конкретной мастерской.
Таблица Workshop_History показывает экземпляры семинара, которые происходят в определенную дату,
Таким образом, один тип семинаров происходит много раз и, следовательно, также имеет отношение один ко многим.
В одном семинаре на определенную дату (из Workshop_History) много участников.
Мне нужно написать запрос, который показывает всех участников, которые посещали определенный семинар по Школе,
В таблице должны быть указаны все названия школ в левом объединении, а справа - количество всех участников, которые посетили конкретный семинар в зависимости от школы, к которой они принадлежат.
Это таблицы:
School
Id integer NOT NULL, IDENTITY(1,1) PRIMARY KEY
Name varchar(255)
Participants
Id, FName, LName, Email, Phone,
SchoolId FOREIGN KEY
Workshop
Id, Name varcha NOT NULL, IsMandatory bit
Workshop_History
Id, DateTime, WorkshopId
Workshop_Participants
Workshop_HistoryId, ParticipantId
CONSTRAINT PRIMARY KEY(Workshop_HistoryId, ParticipantId),
CONSTRAINT FOREIGN KEY(Workshp_HistoryId)
REFERENCES Workshop_History(Id)
CONSTRAINT FOREIGN KEY(ParticipantId)
REFERENCES Participant(Id)
This is all I have at the moment:
SELECT School.SName, COUNT()
-- Count the number of Participants who belong to the school and attended the specified workshop
FROM School
LEFT JOIN Participant
ON School.Id = Participant.SchoolId and