繁体   English   中英

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是拥有出席“是/否”字段的表的名称。 CompletedHours是AFFILIATES表中的一个字段。

我曾尝试找到一种解决方案,但似乎只能在网上找到求和与否的能力。 为了给大家更好的理解,我附上了这张照片。

这是使用基本的Access功能可以完成的事情,还是有SQL解决方案?

由于我是新手,因此无法直接发布图像,但是我已将其上传到此处:

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM