database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30069 게시물 읽기
No. 30069
JOIN 관련 문의 드립니다. 머리가 터지려고 하네요.. ㅡㅡ;;
작성자
김상묵(mook3710)
작성일
2011-10-11 10:33ⓒ
2011-10-11 10:46ⓜ
조회수
7,807

AAA 테이블(고객)

code  : 코드자동증가값
name : 고객명

레코드 ---> 1, 홍길동

=========================================

BBB 테이블(판매1)

code : 코드자동증가값
acode : AAA 고객 테이블의 코드(fk)
amount : 금액

레코드 ---> 1, 1, 1000
레코드 ---> 2, 1, 2000

=========================================

CCC 테이블(판매2)

code : 코드자동증가값
acode : AAA 고객 테이블의 코드(fk)
amount : 금액

레코드 ---> 1, 1, 3000
레코드 ---> 2, 1, 4000

=========================================

위 3개의 테이블을 조인 걸어서 판매금액의 합(판매1+판매2)을 구하려고 합니다.

SELECT A.name, SUM(B.amout + C.amount) as total
FROM ((AAA as A
LEFT JOIN BBB as B ON B.acode = A.code)
LEFT JOIN CCC as C ON C.acode = A.code) WHERE code = 1 GROUP BY A.name

이런식으로 쿼리를 작성해 봤는데요...

내가 원하는 결과는 10,000원이 나와야 하는데

레코드가 2배로 증가하면서 20,000원이 나옵니다...

왜 20,000원이 나오는지는 대충 알겠는데..

제가 원하는 10,000원이 나올 수 있도록 하는 방법 없을까요?

DB는 Mysql 5.x 사용중입니다.

부디 도움 부탁드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

BBB, CCC테이블에 레코드 더 넣어 보세요.

기하 급수적으로 늘어날 거예요.

JOIN이란 걸 이해해야 합니다.

 

판매금액의 합을 구한다.

 

select A.name, total

from (

select acode, sum(amount) as total

from (

(

select acode, amount from BBB

where acode=1

union all

select acode, amount from CCC

where acode=1

)) sal

) s join AAA A ON (A.code = s.acode)

뭐 이런식으로 풀어야 합니다.

BBB와 CCC가 하나의 Join문에 묶이면 뻥튀기 됩니다.

 

박인호(paerae)님이 2011-10-12 10:53에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
30072group by... [1]
안용재
2011-10-14
7866
300711067 프로세스 비정상종료 오류에 대해서... [1]
박의호
2011-10-14
8894
30070mysql 쿼리 문의드립니다. [1]
최범선
2011-10-11
7929
30069JOIN 관련 문의 드립니다. 머리가 터지려고 하네요.. ㅡㅡ;; [1]
김상묵
2011-10-11
7807
30068double형 문제 - 간단하니 테스트라도 부탁드립니다.
박종선
2011-10-10
7213
30067재고 계산에 대해 질문드립니다ㅜㅜ [3]
sleee
2011-10-10
7324
30066이상한 현상에 대해서 질문 드릴께요 [2]
김용덕
2011-10-05
7380
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다