2011-09-21 9 views
0

두 테이블이 있습니다. 하나는 상점 목록과 ID (shop_id) 이고 다른 하나는 그들이 작업하는 상점의 ID (shop_id)를 가진 종업원 목록이있는 상점입니다.SQL 쿼리 : HAVING, GROUP BY

각 직원을 특정 상점에서 특정 상점으로 인쇄해야합니다. 내 쿼리는 일반적으로 정확하지만 tblEmployees와 같은 오류가있는 것 같습니다.

일반적으로 내 쿼리는 다음과 유사합니다.

tblEmployees.Name가 집계 함수의 일부가 아닌 :

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

은 일반적으로 내가 좋아하는 뭔가를 말하는 오류가 발생합니다.

GROUP BY 문 아래에이 오류를 제공하는 모든 열을 넣으면 내 문제를 해결할 수 있는지 알고 싶습니다. 아니면 내가이 쿼리에서 얻을 필요가 결과에 영향을주지 않고이 오류를 수정하는 또 다른 방법입니다.

답변

10

GROUP BYHAVING 절을 버리십시오. 여기에 집계되지 않습니다. 당신은 당신의 테이블에 가입하고 싶습니다.

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

나는 5 –

+0

는 그런 다음에 그룹화 할 것입니다 좀 더 COUNT (tblEmployees.id)> 만 상점을 선택이 쿼리를 수행하고 있었다 이것은 매우 좋은 예 아니 였는데, 이제 가정 해 봅시다 다른 열 중 _all_입니다. '선택 이름, 성, tblEmployees.shop_id = tblShops.shop_id에서 tblEmployees.shopid GROUP BY 이름, 성, tblEmployees.shop_id HAVING COUNT (tblEmployees.id)> 5;' –