2011-10-17 63 views
0

我正在嘗試確定參加由特定組舉辦的活動的總人數。計算總活動參加者

我想顯示與會者的總數,允許的最大出席人數,活動標題,活動日期和活動聯繫人。我以不同的方式嘗試了以下查詢,但不斷收到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

+0

您必須在本部分中的'and'之前有一個空格:'events.unit ='CTL'和' – HansUp

+0

參數框要求什麼? 'attendanceTotal'?或''CTL'和'? – HansUp

+0

@HansUp:該框會提示attendanceTotal。 – aparker81

回答

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; 

我從薩姆()改變了聚合函數COUNT()。請注意,聚合函數未包含在GROUP BY子句中 - GROUP BY僅列出確定組的字段(或字段表達式),所有聚合函數均爲NOT

我還在字段名稱最大值和日期周圍添加了方括號,因爲它們都是reserved words ---名稱包圍減少了混淆數據庫引擎的風險。

編輯:顯示關係的圖片還顯示您有附加的保留字作爲字段名稱。建議您下載Allen Browne的Database Issue Checker Utility並使用它檢查您的應用程序。它會警告你保留字和其他潛在的「疑難雜症」問題。

+0

謝謝你提醒我關於括號。這接近我想要的;然而,參加總數只返回值1,而不是指出有多少人蔘加了該活動。 – aparker81

+0

我沒有看到客戶端表對此查詢的貢獻。這可能有助於向我們展示我所建議的數據樣本。 – HansUp

+0

客戶端表中的clientID與eventAttendance表的clientID一致。如果客戶參加了一個活動,則客戶ID存在,並且有人蔘加的字段被標記爲「是」。 我可以提供什麼類型的樣本以獲得進一步的幫助? – aparker81