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
운영게시판
최근게시물
Oracle Q&A 40609 게시물 읽기
No. 40609
쿼리 질문입니다.
작성자
db 사랑
작성일
2014-11-13 10:34
조회수
6,801

쿼리 질문 입니다 .

잘 부탁 드릴께요...

예를 들면....

MATERIAL           LOT            TYPE         QTY

AAA                       AAA              901            1000

AAA                       AAA              309             1000

BBB                      BBB             901              2000

MATERIAL 과 LOT 는 같습니다. 다만 TYPE 이 틀린데요.. 만약 한 테이블에 두 TYPE 이 공존하는 경우 309만 나와야 되며,

나머지 309가 없는 MATERIAL과 LOT 의 경우는 무조건 901 이 나와야 합니다.

아무리 생각해 봐도 로직이 생각나지 않아요.. ㅜㅜ

부탁 드릴께요...

감사합니다.

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

WITH t AS
(
SELECT 'AAA' material, 'AAA' lot, '901' type, 1000 qty FROM dual
UNION ALL SELECT 'AAA', 'AAA', '309', 1000 FROM dual
UNION ALL SELECT 'BBB', 'BBB', '901', 2000 FROM dual
)
SELECT material, lot, type, qty
  FROM (SELECT material, lot, type, qty
             , ROW_NUMBER() OVER(PARTITION BY material, lot
               ORDER BY DECODE(type, '309', 1, 2)) rn
          FROM t
        )
 WHERE rn = 1
;

마농(manon94)님이 2014-11-13 14:22에 작성한 댓글입니다.

그냥 끄젹여 봅니다.

마농님 sql 참고하시고요...

이런 방법도 있다는것만 참고로 봐 주세요.

 

WITH t AS
(
          SELECT 'AAA' MATERIAL, 'AAA' LOT, '901' TYPE FROM dual
UNION ALL SELECT 'AAA' MATERIAL, 'AAA' LOT, '309' TYPE FROM dual
UNION ALL SELECT 'BBB' MATERIAL, 'BBB' LOT, '901' TYPE FROM dual
)
SELECT a.MATERIAL, a.LOT, a.TYPE from t a
where a.TYPE = '309'
union
SELECT b.MATERIAL, b.LOT, b.TYPE from t b
where b.TYPE = '901'
and  not exists ( SELECT c.MATERIAL, c.LOT, c.TYPE from t c
                 where  c.MATERIAL = b.MATERIAL
                 and    c.lot = c.lot
                 and    c.TYPE ='309' ) 
 

 

박재덕(jdpark)님이 2014-11-13 15:36에 작성한 댓글입니다.

와우....

정말 감사 드려요.... 정말 도움 많이 됐습니다.

모두 복 받으세요.. !!

db 사랑님이 2014-11-13 16:36에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40612시간 범위 조회 [1]
멘붕
2014-11-13
8629
40611고수님들의 조언 부탁드립니다. [3]
일쌍다반사
2014-11-13
6701
40610procedure에서 long으로 선언한게 혹시 저절로 varchar로 바뀌나요? [1]
자바천재
2014-11-13
6583
40609쿼리 질문입니다. [3]
db 사랑
2014-11-13
6801
40608ORA-01805 error in date/time operation [1]
이돈휘
2014-11-10
8289
40604ora-00904 ERROR [1]
최동복
2014-11-06
12027
40603쿼리좀 봐주세요...ㅜㅜ [3]
초보자
2014-11-05
7484
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다