2011-09-21 191 views
0

我有兩個表。一個帶有商店和他們的ID(shop_id) 的列表,以及具有他們工作的商店的ID(shop_id)的僱員的列表。SQL查詢:HAVING,GROUP BY

我必須打印出每個員工與特定的位置形成某個商店。 我的查詢通常是正確的,但我似乎得到像tblEmployees一樣的錯誤。

通常我的查詢看起來像這樣。

SELECT tblEmployees.Name, tblEmployees.Surname, tblShops.shop_id 
FROM tblEmployees, tblShops 
GROUP BY tblEmployees.shop_id 
HAVING tblEmployees.shop_id = tblShops.shop_id; 

通常我得到一個錯誤說是這樣的:

tblEmployees.Name是一個非集合函數的一部分。

我想知道的是如果它能解決我的問題,如果我把每一列都給出了這個錯誤在GROUP BY語句下。或者是否有另一種解決這個錯誤的方法,而不影響我從這個查詢中得到的結果。

回答

10

刪除GROUP BYHAVING條款。你不在這裏彙總。你想加入你的桌子。

SELECT tblEmployees.Name, Surname, tblShops.shop_id 
FROM tblEmployees JOIN tblShops 
ON tblEmployees.shop_id=tblShops.shop_id 
+0

我想這不是一個很好的例子,但是我們要說我不得不這樣做查詢,也只選擇與更多的COUNT(tblEmployees.id)>商店5 –

+0

然後你會想組其他欄目。 'tblEmployees.shop_id = tblShops.shop_id SELECT name,surname,tblEmployees.shopid GROUP BY name,surname,tblEmployees.shop_id HAVING COUNT(tblEmployees.id)> 5;' –