计算总活动参加者

时间:2011-10-17 19:57:40

标签: ms-access ms-access-2007

我正在尝试确定参加特定群组主持的活动的总人数。

我想显示与会者总数,允许的最大出席人数,活动标题,活动日期和活动联系人。我以不同的方式尝试了以下查询,但继续在MS Access 2007中获取“输入参数值”对话框。我需要更改什么?

SELECT sum(eventAttendance.attended) AS attendanceTotal, events.max, events.title, events.date, events.eventContact, events.unit
    FROM (client INNER JOIN eventAttendance ON client.clientID=eventAttendance.clientID) INNER JOIN events ON eventAttendance.ID=events.id
    WHERE events.unit='CTL'and eventAttendance.attended = 'yes'
    GROUP BY attendanceTotal, events.max, events.title, events.date, events.eventContact, events.unit;

谢谢。

Table Relationships

1 个答案:

答案 0 :(得分:2)

SELECT
    events.[max],
    events.title,
    events.[date],
    events.eventContact,
    events.unit,
    Count(eventAttendance.attended) AS attendanceTotal
FROM
    (client INNER JOIN eventAttendance
    ON client.clientID=eventAttendance.clientID)
    INNER JOIN events ON eventAttendance.ID=events.id
WHERE
        events.unit='CTL'
    AND eventAttendance.attended = 'yes'
GROUP BY
    events.[max],
    events.title,
    events.[date],
    events.eventContact,
    events.unit;

我将聚合函数从Sum()更改为Count()。请注意,聚合函数未包含在GROUP BY子句中 - GROUP BY仅列出确定组的字段(或字段表达式), NOT 任何聚合函数。

我还在字段名称max和date周围添加了方括号,因为它们都是reserved words - 将名称括起来可以降低混淆数据库引擎的风险。

修改:显示关系的图片还会显示您有其他保留字作为字段名称。建议你下载Allen Browne的Database Issue Checker Utility并用它来检查你的申请。它会警告你保留的话和其他潜在的“问题”。