虽然我现在使用 stackoverflow 很长时间了,但这是我第一次发布问题。我希望有人能帮我解决这个问题。
我在 SQL Server 2005 中有这个数据库结构(请看下图),我现在正在使用 Crystal Reports 处理报表。
我想要做的是从数据库中获取特定实施机构的课程、促进者和学习者的总数(这是该图中未显示的另一个表,仅与课程表有关系)。
我可以使用 where 语句中的 ImplementingAgencyID 列获取课程总数,但我不知道如何获取同一机构的促进者和学习者的总数(例如,ImplementingAgencyID 1 或 2)。
有没有办法做到这一点?数据库中已经有数千条记录,因此即使我必须将 ImplementingAgencyID 列添加到所有三个表中,我也无法为旧条目填充此列。它只会为新条目添加。
谁能帮我解决问题?最好的解决方案是什么?我需要选择查询?
--- 我无法发布图片,所以我将列出下面每个表格的重要列 ---
Courses (table):
Id int
SerialNum nvarchar
ProvinceID int
DistrictID int
VillageID int
EntryUserID uniqueidentifier
NearestSchool nvarchar
ImplementingAgencyID int
FacilitatorID
CourseVenueID int
...
Learners (table):
Id
CourseID
LearnerName
...
Facilitators (table):
Id
SerialNum
FullName
Age
ProvinceID
DistrictID
VillageID
...
Agencies (table):
Id
AgencyNameLocal
AgencyNameEnglish
...
关系: 1: Courses 表中的 ImplementingAgencyID 列与 Agencies 表中的 Id 列存在多对一关系。
2:Learners 表中的 CourseID 列与 Courses 表中的 Id 列是多对一的关系。
3:Courses 表中的 FacilitatorID 列与 Facilitators 表中的 Id 列是多对一的关系。