WITH t AS
(
SELECT 'a' 부품, 10 수량
UNION ALL SELECT 'b', 2
UNION ALL SELECT 'c', 8
), t2 as (
SELECT 'ㄱ' 바코드, 'a' 부품, 5 수량
UNION ALL SELECT 'ㄴ', 'c', 8
)
select t2.바코드
,t.부품
,t.수량
,t2.수량
from t
left outer join t2
on t.부품 = t2.부품;
결과는
바코드|부품|수량|수량1
----------------------
ㄱ|a|10|5
null|b|2|null
ㄴ|c|8|8
입니다.
그런데
바코드 컬럼은 null 이 아니고 수량 컬럼의 값과 수량1 컬럼의 값이 서로 다를 경우만
row를 추가하여 정보를 보여주고 싶습니다.
아래처럼..
바코드|부품|수량|수량1
----------------------
ㄱ|a|10|5
null|a|10|5 << 이것만 추가
null|b|2|null
ㄴ|c|8|8
-----------------
조금더 편하게 보자면
아래처럼 보고 싶은 겁니다.
ㄱ|a|5 << 수량 변경
null|a|5 << 이것만 추가
null|b|2
ㄴ|c|8
즉 부품 ㄱ 에 수량이 10 인데 바코드 발행된 부품 ㄱ 의 수량이 5개라면
T 테이블을 기준으로 t테이블에 수량 10 을 ROW 1개를 추가하여 바코드 발행된 수량과 바코드 발행안된 수량으로 표시하고 싶습니다.
도움 부탁드리겠습니다^^;;
|