desc data (제품정보 테이블 table)
item varcher(2) // 제품고유번호 유니크
total number(5) // 총 수량
name varcher(10) // 제품명
...
...
desc part (고객이 산 물품 table)
item varchar(2) // 제품번호
cust varchar(20) // 고객아이디
qua number(2) // 수량
desc vip (vip 고객 table)
cust varchar(20)
위 테이블 3개에서 data.item = part.item && part.cust = vip.cust 같습니다.
다음과 같은 쿼리를 구하려고 합니다..
제품번호 | 제품명 | 총수량 | vip회원을제외한고객이 산 종목별 토탈수량 |
vip회원만이 산 종목별 수량 | 종목별 총판매수량
data.item | data.name | data.total | (part.number)- (vip.cust) | part.number중 vip만 |
sum(part.number)
테이블을 변경하거나 추가하지 않고 위 테이블을 토대로 위와 같은 쿼리를 구할려고 합니다..
디비는 오라클 815 입니다.
대충 아래와 같은 쿼리가 있어야 할꺼 같은데요..
아래대로 하면 안 되고요..
나름대로 하긴 했지만 구문이나 모든 것이 틀린거 같거든요..
어떻게 해야 할지... 부탁드립니다..
SELECT a.item, a.name, a.total, sum(b.number) 회원, sum(b.number) vip
FROM data a , part b, vip c
WHERE a.item=b.item and b.cust=c.cust
GROUP by a.item, a.name, a.total
HAVING sum(회원) = (select number from part where cust not (select cust from vip) )
and sum(vip) = (select number from part where cust in (select cust from vip) )
ORDER BY a.itemcd desc, a.itemcd ;
이렇게 쿼리를 하면 각 종목별로 해서 내용이 나와야 하거든요..
어떻게 해야 할지...부탁드립니다.
|