MS Access - 聚合查询问题
MS Access - Aggregate Query issues
我有一个数据库,可以根据学生是否参加活动来跟踪他们的社区服务时间。关系建立正确,但我 运行 遇到问题的地方是聚合查询。
这是我试图做的逻辑:
if(ActivityAttendance.Attended) == 1
Affiliates.completedHours += Activities.creditHours
(This is just supposed to be more of a pseudo code)
ACTIVITYATTENDANCE 是 table 的名称,该 table 拥有参与 "yes/no" 字段。
CompletedHours 是 AFFILIATES table.
内部的一个字段
我试过寻找解决方案,但似乎我在网上能找到的只是能够将是的数量和否的数量相加。为了更好地理解,我附上了一张关系图。
这是否可以使用基本的 Access 功能来完成,或者是否有 SQL 解决方案?
由于我是堆栈新手,我无法直接 post 图片,但我已将其上传到此处:
在汇总查询的 SELECT 行中使用带 Sum 的 IIF():
SELECT Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name],
Sum(IIF(ActivityAttendance.Attended = True, Affiliates.[Completed Hours], 0)) As AttendedServiceHours
FROM Affiliates
INNER JOIN ActivityAttendance ON Affiliates.StudentID = ActivityAttendance.StudentID
GROUP BY Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name]
或者,您可以在聚合查询中使用 WHERE 子句:
SELECT Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name],
Sum(Affiliates.[Completed Hours]) As AttendedServiceHours
FROM Affiliates
INNER JOIN ActivityAttendance ON Affiliates.StudentID = ActivityAttendance.StudentID
WHERE ActivityAttendance.Attended = True
GROUP BY Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name]
我有一个数据库,可以根据学生是否参加活动来跟踪他们的社区服务时间。关系建立正确,但我 运行 遇到问题的地方是聚合查询。
这是我试图做的逻辑:
if(ActivityAttendance.Attended) == 1
Affiliates.completedHours += Activities.creditHours
(This is just supposed to be more of a pseudo code)
ACTIVITYATTENDANCE 是 table 的名称,该 table 拥有参与 "yes/no" 字段。 CompletedHours 是 AFFILIATES table.
内部的一个字段我试过寻找解决方案,但似乎我在网上能找到的只是能够将是的数量和否的数量相加。为了更好地理解,我附上了一张关系图。
这是否可以使用基本的 Access 功能来完成,或者是否有 SQL 解决方案?
由于我是堆栈新手,我无法直接 post 图片,但我已将其上传到此处:
在汇总查询的 SELECT 行中使用带 Sum 的 IIF():
SELECT Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name],
Sum(IIF(ActivityAttendance.Attended = True, Affiliates.[Completed Hours], 0)) As AttendedServiceHours
FROM Affiliates
INNER JOIN ActivityAttendance ON Affiliates.StudentID = ActivityAttendance.StudentID
GROUP BY Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name]
或者,您可以在聚合查询中使用 WHERE 子句:
SELECT Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name],
Sum(Affiliates.[Completed Hours]) As AttendedServiceHours
FROM Affiliates
INNER JOIN ActivityAttendance ON Affiliates.StudentID = ActivityAttendance.StudentID
WHERE ActivityAttendance.Attended = True
GROUP BY Affiliates.StudentID, Affiliates.[First Name], Affiliates.[Last Name]