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 29630 게시물 읽기
No. 29630
어떻게 하면 좋을까요. 서브쿼리 문제
작성자
류자현(koyulka)
작성일
2010-04-29 14:25ⓒ
2010-04-29 15:46ⓜ
조회수
7,628

하나의 테이블에 id와 상태, 가격이 들어 있습니다.

상태는 1~10까지 있구요.  몇몇 상태는 적립이고, 몇몇 상태는 차감입니다.

id 별로 (적립액-차감액 > 10) 인 경우를 구하고 싶은데 어떻게 하면 좋을까요.

하나의 쿼리문으로 해결하고 싶습니다.

 

column : id, stat, price
stat : 1~10
    1,2,4,6,7,10 -> 적립
    3,5,8,9 -> 차감
각 ID별 보유 금액 : 총적립 price -총차감 price
"각 ID별 보유 금액 > 10" 인 경우를 구하고 싶습니다.

 

select sum(price) FROM Member WHERE stat in (1,2,4,6,7,10) group by id
select sum(price) FROM Member WHERE stat in (3,5,8,9) group by id

 

적립만 있고, 차감이 없는 경우가 있어서, 위 두 쿼리 결과 ID 명단이 일치하지 않습니다.

 

어떻게 하나의 쿼리문으로 안될까요?

이리저리 서브쿼리를 만들어 봤는데 안되네요. ㅡㅡ;; 도와주세요

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

안녕하세요 박성원입니다

 

간만에 사랑넷에 들어와보네요 ^^;; 요즘 몸이 신통치 안네요 ㅠ.ㅠ

다들 건강에 주의하세요 ㅋㅋ

 

흠.. 각설하고 내용을 분석하면 일따는~ 기준이 먼가에 따라 다릅니다.

적립금을 기준으로(적립을 해야 차감을 할수 있지요  ^^)

 

select  id, plus - minus as values

from

(select id, sum(price) as plus from Member where stat in (1,2,4,6,7,10) group by id) T1

left join (select id, sum(price) as minus from Member where stat in (3,5,8,9) group by id) T2 on T1.id=T2.id

 

이정도로 계산이 가능 할듯합니다.

 

물런, 차감액만 있는 사람도 구할 수 있지요

 

마지막에

where id is null 을 추가해서 차감액만 있는 사람만을 별도로 추출할 수 있습니다.

 

 

그럼 건승하시길 ^^

 

박성원(darkancia)님이 2010-04-30 15:27에 작성한 댓글입니다.
이 댓글은 2010-04-30 15:27에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
296333개 테이블 join 해서 조회를 해보고 싶습니다. [2]
이현승
2010-04-30
7622
29632select 할 때 칼럼명에 alias 테이블 이름 붙이는 방법 찾아요 [2]
pithecus
2010-04-29
7873
29631쿼리 질문입니다.. 도움을 부탁드려요~~ [1]
이종웅
2010-04-29
7540
29630어떻게 하면 좋을까요. 서브쿼리 문제 [1]
류자현
2010-04-29
7628
29629앞부분의 일부가 일치하는 데이터들을 그룹화해서 얻어오는 법 [2]
제로당
2010-04-26
6887
29628간단한 쿼리 초보입니다. [1]
쿼리왕초보ㅠㅠ
2010-04-23
7589
29627쿼리 최적화 질문입니다.// [4]
최현석
2010-04-22
7441
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다