2013-07-18 2 views
0

SQL 구문을 올바르게 가져 오는 데 문제가 있습니다. 나는 세 개의 테이블을 가지고 있는데, 나는 오직 OUTER JOIN을 필요로한다. 그러나 처음에는 그것들 중 두 개와 함께 작동 시키려고한다. 무엇이 잘못되었는지 파악할 수 없습니다.SQL FULL JOIN 구문

SELECT SUM(A.charge-A.comp), COUNT(A.id) 
FROM A 
FULL JOIN init ON (A.house=init.house) 
WHERE A.tag='V' AND A.house='first' 

을하지만 추가 선택 목록에 필드를 초기화하기 때, 그것은 구문 오류를 제공합니다 :

은 여전히 ​​노력하고 있습니다. 그래서 이건 더 이상 작동하지 않습니다.

SELECT SUM(A.charge-A.comp), COUNT(A.id), init.resp 
FROM A 
FULL JOIN init ON (A.house=init.house) 
WHERE A.tag='V' AND A.house='first' 

어떤 아이디어입니까?

btw. PostgreSQL 9.1을 사용하고 있습니다.

+3

전체 구문 오류 메시지를 제공하십시오 :

SELECT SUM(A.charge-A.comp), COUNT(A.id), init.resp FROM A FULL JOIN init ON (A.house=init.house) WHERE A.tag='V' AND A.house='first' group by init.resp; 

그렇지 않으면, 당신은 몇 가지 집계 함수를 할 수 있습니다. –

답변

2

문제는 조인과 관련이 없습니다. 집계되지 않은 열을 가진 집계 함수가 있으므로 group by이 필요합니다. 아마도 당신은 의미 :

SELECT SUM(A.charge-A.comp), COUNT(A.id), sum(init.resp) 
FROM A 
FULL JOIN init ON (A.house=init.house) 
WHERE A.tag='V' AND A.house='first' 
+0

"그룹 기준"으로 문제가 해결되었습니다. 고마워요! – raki