2013-04-17 3 views
0

에 의해 접합 및 그룹을 만들 수 없습니다. 이 마지막 열에는 "MatriculeEmploye"가 참조하는 행 수가 있어야합니다.내가 두 개의 테이블이

Select Distinct PrenomEmploye, NomEmploye 
From Employe 
Where MatriculeEmploye in 
(SELECT MatriculeEmploye, COUNT(IdAppartL) 
FROM GererLocationAppart 
GROUP BY MatriculeEmploye); 

하지만 내가 얻을 : 나는 내가 시도하는 방법 .. 모르겠어요

Select Distinct PrenomEmploye, NomEmploye, IdAppartL 
From Employe E1, GererLocationAppart G1 
Where E1.MatriculeEmploye=G1.MatriculeEmploye; 

그리고

SELECT MatriculeEmploye, COUNT(IdAppartL) 
FROM GererLocationAppart 
GROUP BY MatriculeEmploye; 

그러나 사이의 혼합물을해야한다고 알고

ERROR 1241 (21000): Operand should contain 1 column(s) 

답변

1

IN 이후의 하위 쿼리는 1 개의 열만 반환해야합니다. MatriculeEmploye, COUNT(IdAppartL)을 2 열로 반환합니다. 귀하의 쿼리는 같은 것을해야한다 :이 쿼리는 동일 (Prenom, 공칭) 커플이 직원을 병합 것을 것을

Select e.PrenomEmploye, e.NomEmploye, COUNT(g.IdAppartL) 
From Employe e 
    INNER JOIN GererLocationAppart g ON g.MatriculeEmploye=e.MatriculeEmploye 
GROUP BY 1,2; 

주를, 그래서 당신은 또한 BY 절 SELECT 및 GROUP에 e.MatriculeEmploye을 추가 할 수 있습니다 (SELECT e.MatriculeEmploye, e.Prenom, ...으로 선택을 변경하면 GROUP BY 1,2,3).

1
SELECT 
E1.PrenomEmploye 
,E1.NomEmploye 
,E1.IdAppartL 
,COUNT(G1.IdAppartL) as CountMatriculeEmploye 
From Employe E1 
JOIN GererLocationAppart G1 ON E1.MatriculeEmploye=G1.MatriculeEmploye 
GROUP BY E1.MatriculeEmploye;