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 39739 게시물 읽기
No. 39739
중복행 재거
작성자
약쟁이총각
작성일
2012-11-13 14:46
조회수
5,990

안녕하세요..

작업중에 데이터 중복부분을 빼야 하는데.. 다음과 같이 결과가 나옵니다.

HEADER_ID FLAG HEADER_FLAG
00000000001   RGST
00000000002   RGST
00000000003   RGST
00000000004   RGST
00000000005   RGST
00000000006   RGST
00000000007   RGST
00000000008   RGST
00000000009   RGST
00000000013   RGST
00000000015   RGST
00000000017 RGST RGST
00000000017   RGST
00000000018   RGST

쿼리는

SELECT DISTINCT A.HEADER_ID,
 DECODE(B.USER_ID,'001000198','RGST','') FLAG,A.HEADER_FLAG
FROM BHEADER A, BHEADER_READ B
WHERE  A.HEADER_ID= B.HEADER_ID(+)
AND A.HEADER_FLAG = 'RGST'
AND BRD_ID='00000000c'

입니다.

궁금한 부분은 HEADER_ID가 00000000017가 중복으로 00000000017 RGST RGST 만 남아있어야 하는데.. 아무리 해도 안빠지네요.. ㅜㅜ

고수님들의 정성어린 답변.. 부탁드립니다.

 

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

1. 원인은 header_id 가 00000000017 인 데이터에는
   user_id 가 '001000198'인 데이터만 있는게 아니기 때문에
   flag 값이 두개로 나뉘어짐
2. 조인조건이 누락되어 중복되는 경우라면
  - 누락된 조건 추가
3. user_id가 '001000198'인 자료를 포함하는 header_id를 표시하고자 한다면
  - Distinct 가 아닌 Group By 구문을 적절히 사용.


SELECT a.header_id
     , MIN(DECODE(b.user_id, '001000198', a.header_flag)) flag
     , a.header_flag
  FROM bheader a
     , bheader_read b
 WHERE a.header_id = b.header_id(+)
   AND a.header_flag = 'RGST'
   AND brd_id = '00000000c'
 GROUP BY a.header_id, a.header_flag
 ORDER BY a.header_id
;

마농(manon94)님이 2012-11-13 16:37에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39746오라클(Oracle)을대용할수있는,오픈소스의갑(甲)PostgreSQL!!!
포스트그레스SQL
2012-11-16
6331
39741고정 가로세로 변환 하여 TABLE에 넣기 [4]
고정변
2012-11-16
6961
39740두 날짜 사이의 주말을 제외한 일수구하기 [2]
노정균
2012-11-15
9523
39739중복행 재거 [1]
약쟁이총각
2012-11-13
5990
39738중복 행 체크 관련 질문 드립니다. [1]
pjin
2012-11-12
5640
39737order by를 in절로 가능 할까요? [2]
사과
2012-11-11
5233
39736부모테이블이 수정되면 자식테이블도 자동적으로 수정되게 하고 싶습니다. [1]
uamu
2012-11-09
5770
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다