我正在尝试确定参加特定群组主持的活动的总人数。
我想显示与会者总数,允许的最大出席人数,活动标题,活动日期和活动联系人。我以不同的方式尝试了以下查询,但继续在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;
谢谢。
答案 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并用它来检查你的申请。它会警告你保留的话和其他潜在的“问题”。