2015-05-20 60 views
0

我想從三個使用Microsoft Access中的內連接的表中進行選擇。在其中一個字段中,我還需要選擇它返回的記錄數。內置函數和分組在Microsoft Access中不起作用

SELECT Person.FirstName, Person.LastName, Person.Phone, 
Person.Email,Person.Address, Room.RoomNo, Room.Type, Building.Name, 
Floor.Name,count(*) as result 

FROM (Floor INNER JOIN (Building INNER JOIN 
Room ON Building.BuildingID = Room.BuildingID) ON Floor.FloorNo = 
Room.FloorNo) INNER JOIN (Person INNER JOIN Patient ON Person.Username = 
Patient.Username) ON Room.RoomNo = Patient.RoomNo 

WHERE (((Person.FirstName) Like "*" & [Forms]![search]![firstnameKey] & "*") 
AND ((Person.LastName) Like "*" & [Forms]![search]![lastnameKey] & "*")) AND 
(patient.status = 1) 

GROUP BY Patient.username ; 
+0

什麼錯誤信息你好嗎? – hypetech

+0

@hypetech你的查詢不包括指定的表達式'名字'作爲聚合函數的一部分 –

回答

1

任何時候你有一個聚合函數,你將不得不group by字段不被計算。從查看您的選擇陳述中,您將返回多個字段,即:Person.Firstname, Person.Lastname等。我相信您將不得不group by這些非聚合字段。

示例代碼:

SELECT Person.FirstName, Person.LastName, Person.Phone, Person.Email, Person.Address, Count(*) as Result <br> 
From Table1 join table 2 -- etc <br> 
WHERE a = b -- etc <BR> 
GROUP BY Person.FirstName, Person.LastName, Person.Phone, Person.Email, Person.Address 
+0

我使用'GROUP BY'作爲'COUNT'函數 –

+0

我在原始答案中包含了一些示例代碼。這是你應該嘗試的基本展示。您仍然必須將所有未包含的字段分組。不要將Count(*)作爲您的Group By Statement的組成部分。希望有所幫助。 – SQLUser44

+2

如果你看一下http://stackoverflow.com/questions/19430500/ HansUp對你遇到的同樣問題提供了一個相當詳細的答案。 – Newd

相關問題