2010-11-25 3 views
1

나는 여러 가지 다른 기준으로 검색된 사용자 예비품을 보여주는 소프트웨어를 개발 중입니다.여러 결과를 가진 조인 된 테이블 B에서 합계를 얻는 방법은 테이블 A에서 한 행을 다시 나타냅니다?

스페어 파트는 하나의 테이블 (실제로는 평면 BOM 구조)에 있으며 다른 스탁 부품은 재고가 있습니다. 재고 수량은 1 개의 예비 부품에 대해 0-5 개의 다른 위치 (행)가있을 수 있고 모든 위치 (행)에 다른 양이있을 수 있기 때문에 조금 문제가됩니다. 즉, 총 재고 수량은 모든 다른 위치 (행)에서 SUMmed해야합니다.

는 예비 부품이 에서 예비 부품 및 재고 수량 stockQ 테이블에 있다고하자. 조인은 ITEMID으로 이루어지며 두 테이블의 예비 부품 키입니다.

어떻게해야합니까? 일반적으로 하나의 쿼리로 50 ~ 500 개의 스페어 파트가 생성됩니다. 한 번에 한 부품 씩 재고 수량 검사를하고 싶지 않습니다.

EDIT : 잘못된 태깅이 수정되어 mysql이 oracle로 바뀌 었습니다.

답변

7

내가 정확히 이해하면 총 수량이 아니라 다른 위치의 수를 원합니다. 당신은 합계 수량을 합산하여이 합류를 달성 할 수 있습니다. 내가 MySQL의 sintax 확실하지 않다하지만이 쿼리 작업을

select * 
from spareparts S 
join (select ITEMID, sum(quantity) as quantity from stockQ group by ITEMID) as Q 
on S.ITEMID = Q.ITEMID 
+0

완벽한을 수행해야합니다, 감사합니다. BTW : 내가 가장 흔하게 사용하는 데이터베이스이므로 MySQL에 잘못된 태그를 지정했습니다. 여기서 문제가되는 것은 Oracle 10g이지만 실제로는 아무런 차이가 없습니다. – heikkim

관련 문제