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 图片,但我已将其上传到此处:

http://s22.postimg.org/g0r53vgtd/Capture.png

在汇总查询的 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]