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
운영게시판
최근게시물
MS-SQL Q&A 7087 게시물 읽기
No. 7087
row 를 늘리기 도움 부탁드립니다.
작성자
개발자
작성일
2017-08-23 16:07ⓒ
2017-08-23 17:49ⓜ
조회수
2,602

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개를 추가하여 바코드 발행된 수량과 바코드 발행안된 수량으로 표시하고 싶습니다.

 

도움 부탁드리겠습니다^^;;

 

 

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

WITH t AS
(
SELECT 'a' 부품, 10 수량
UNION ALL SELECT 'b', 2
UNION ALL SELECT 'c', 8
)
, t2 as
(
SELECT 'ㄱ' 바코드, 'a' 부품, 5 수량
UNION ALL SELECT 'ㄷ', 'a', 3
UNION ALL SELECT 'ㄴ', 'c', 8
)
SELECT a.부품
     , 1 구분
     , b.바코드
     , b.수량
  FROM t a
  LEFT OUTER JOIN t2 b
    ON a.부품 = b.부품
 UNION ALL
SELECT a.부품
     , 2 구분
     , null 바코드
     , a.수량 - SUM(b.수량) 수량
  FROM t a
 INNER JOIN t2 b
    ON a.부품 = b.부품
 GROUP BY a.부품, a.수량
 HAVING SUM(b.수량) != a.수량
 ORDER BY 부품, 구분, 바코드
;

마농(manon94)님이 2017-08-24 15:02에 작성한 댓글입니다.

댓글이 있을까 하고 들어왔었는데..ㅎㅎ

아! 감사합니다.

좋은 하루 보내세요~

 

개발자님이 2017-08-24 15:18에 작성한 댓글입니다. Edit

하나의 부품에 바코드가 추가될지도 모른다고 생각하고 답변 드렸습니다.
하나의 부품에 바코드가 하나 뿐이라면? 그룹바이는 안해도 됩니다.

마농(manon94)님이 2017-08-24 16:58에 작성한 댓글입니다.

하나의 부품에 부품갯수가 많다면 바코드는 묶음 단위로 여러개를 발행해야 하므로 만들어 주신 그룹바이는 사용해야 될것같습니다.

감사합니다~*

개발자님이 2017-08-25 11:55에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7090오라클의 sys_connect_by_path 함수 변환 [1]
초보
2017-08-30
3166
7089sql 입니다. 꼭 부탁 드려요... [1]
도와주세요
2017-08-29
2483
7088다른유형의 레코드형태를 어떻게 빨리 조회할 수 있을까요?
권순환
2017-08-23
2375
7087row 를 늘리기 도움 부탁드립니다. [4]
개발자
2017-08-23
2602
7086group by가 안되는것 같아요 [2]
김우성
2017-08-17
2377
7085두개의 SELECT 한 값을 하나로 묶고싶어요 [2]
김우성
2017-08-13
2484
7081숫자 변환 문제.. [1]
도와주세요.
2017-07-19
2478
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다