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 39661 게시물 읽기
No. 39661
죄송합니다 ..또 질문 올립니다.
작성자
죄송
작성일
2012-09-27 05:19
조회수
4,671

안녕하세요?

자꾸 질문 올려서 죄송합니다.

WITH TT AS
(
SELECT '1' GROUP_P,  1 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, 'STAND' STAND FROM DUAL UNION ALL  (기준)
SELECT '1' GROUP_P,  2 SEQQ, 'BBB' TTDATA, '20120901' REGDATE, '' STAND FROM DUAL UNION ALL
SELECT '1' GROUP_P,  3 SEQQ, 'CCC' TTDATA, '20120901' REGDATE, '' STAND FROM DUAL UNION ALL
SELECT '1' GROUP_P,  4 SEQQ, 'DDD' TTDATA, '20120901' REGDATE, '' STAND FROM DUAL UNION ALL

SELECT '2' GROUP_P,  1 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, 'STAND' STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  2 SEQQ, 'BBB' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  3 SEQQ, 'CCC' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  4 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  1 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, 'STAND'  STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  2 SEQQ, 'BBB' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  3 SEQQ, 'CCC' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  4 SEQQ, 'DDD' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL
SELECT '2' GROUP_P,  5 SEQQ, 'EEE' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL
)
SELECT *
  FROM TT
 WHERE 1=1
   AND GROUP_P = '1'
   AND SEQQ <> '1'
   AND TTDATA = 'AAA'

구현 할려는게...

그룹내에서 같은 'TTDATA'가있는지 없는지 알라내는 것입니다.

'STAND ' 란 필드 값을 기준으로 그룹내에 'AAA'  값이 있는지 ,GROUP_P 1에서 먼저 찾고 , 없으면 GROUP_P 2에서

일치 하는것 찾고, 없으면 GROUP_P 3에서 찾고,,,이런 식으로

그룹내 같은 값을 찾고 싶습니다.

실력이 미천하여 어떻게 조건을 주어야 할지 모르겠습니다.

죄송합니다.

수고하세요...

 

 

 

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

 

아래와 같은 경우를 찾으시는 건지..

질문 내용으론 정확히 알기 어렵네요..

 

WITH TT AS

(

SELECT '1' GROUP_P,  1 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, 'STAND' STAND FROM DUAL UNION ALL  --(기준)

SELECT '1' GROUP_P,  2 SEQQ, 'BBB' TTDATA, '20120901' REGDATE, '' STAND FROM DUAL UNION ALL

SELECT '1' GROUP_P,  3 SEQQ, 'CCC' TTDATA, '20120901' REGDATE, '' STAND FROM DUAL UNION ALL

SELECT '1' GROUP_P,  4 SEQQ, 'DDD' TTDATA, '20120901' REGDATE, '' STAND FROM DUAL UNION ALL

SELECT '2' GROUP_P,  1 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, 'STAND' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  2 SEQQ, 'BBB' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  3 SEQQ, 'CCC' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  4 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  1 SEQQ, 'AAA' TTDATA, '20120901' REGDATE, 'STAND'  STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  2 SEQQ, 'BBB' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  3 SEQQ, 'CCC' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  4 SEQQ, 'DDD' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL UNION ALL

SELECT '2' GROUP_P,  5 SEQQ, 'EEE' TTDATA, '20120901' REGDATE, '' STAND  FROM DUAL

)

SELECT T.*

FROM (

     -- 기준

     SELECT S.*

     FROM TT S

     WHERE S.GROUP_P = '1' 

     AND S.TTDATA    = 'AAA'

     AND S.STAND     = 'STAND'

     ) S

    ,(

     SELECT T.*

     FROM TT T

     WHERE T.STAND IS NULL  --> STAND IS NULL인 데이터 중에서

     ORDER BY T.GROUP_P     --> GROUP_P, SEQQ 순서로 

             ,T.SEQQ

     ) T

WHERE T.TTDATA = S.TTDATA   --> 기준의 TTDATA와 일치하는 

AND ROWNUM <= 1             --> 1건을 찾아라.

;

 

m님이 2012-09-28 13:18에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39664오라클 한글 인코딩 관련 질문입니다.
정인기
2012-09-27
5428
39663고수님들께 조언을 구하고 싶습니다. [1]
박정우
2012-09-27
4610
39662테이블 수정후 Object 컴파일 [2]
정용석
2012-09-27
4431
39661죄송합니다 ..또 질문 올립니다. [1]
죄송
2012-09-27
4671
39660i/o 갑자기 느려졌습니다. [2]
이영주
2012-09-26
4279
39659그룹내 정렬 [1]
한숨
2012-09-25
4351
39658복구가 가능한가요?
intfive
2012-09-25
4079
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다