[英]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是拥有出席“是/否”字段的表的名称。 CompletedHours是AFFILIATES表中的一个字段。
我曾尝试找到一种解决方案,但似乎只能在网上找到求和与否的能力。 为了给大家更好的理解,我附上了这张照片。
这是使用基本的Access功能可以完成的事情,还是有SQL解决方案?
由于我是新手,因此无法直接发布图像,但是我已将其上传到此处:
在汇总查询的SELECT行中将IIF()与Sum一起使用:
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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.