IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

[계층형 쿼리] START WITH ~ CONNECT BY

DB/Oracle 2020. 7. 28. 11:04
반응형

주문 > 취소 관계아 아래  데이터와 같을때..
START WITH ~ CONNECT BY 절을 사용하여 하나의 주문에 엮여 있는 취소 건들을 하나로 조회할 수있다.

[주문정보] * 주문정보가 있어야 취소가 가능하다.

SELECT
	  A."주문번호"
	, A."원주문번호"
	, B."주문상품순번"
	, DECODE(A."구분", 1, '매출', 2, '취소') AS    "주문구분"
	, B."금액합계"
	, A."주문일"    
FROM
	주문_마스터 A,
	주문_상품 B
WHERE 1=1
	AND A."주문번호" = B."주문번호"
	AND A."주문번호" =  'OR00000000000001' -- 주문번호 


[취소정보] 

SELECT
	  A."주문번호"
	, A."원주문번호"
	, B."주문상품순번"
	, DECODE(A."구분", 1, '매출', 2, '취소') AS    "주문구분"
	, B."금액합계"
	, A."주문일" 
FROM
	주문_마스터 A,
	주문_상품 B
WHERE 1=1
	AND A."주문번호" = B."주문번호"
	AND A."원주문번호" =  'OR00000000000001'  -- 주문번호 
   

원주문번호 'OR00000000000001' 의 취소 주문번호인 'OR00000000000011' 의 번호로,
원주문번호에 엮인 주문건들의 합을 조회해보자.

[최상위 (매출)주문번호 하위의 주문(취소)정보들 가져오기]

 SELECT 
	  A."주문번호"
	, A."원주문번호"
	, B."주문상품순번"
	, DECODE(A."구분", 1, '매출', 2, '취소') AS    "주문구분"
	, B."금액합계"
	, A."주문일"
FROM
	주문_마스터 A,
	주문_상품 B
WHERE 1=1
	AND A."주문번호" = B."주문번호"
START WITH
	A."주문번호" = ( SELECT	MAX (Z."주문번호") 
                        FROM	주문_마스터 Z 
                        START WITH  Z."주문번호" = 'OR00000000000011'    --.ORD_NO = 'OR20170800011597'  인 값에서..
                        CONNECT BY PRIOR Z."원주문번호"  = Z."주문번호"    -- ORI_ORD_NO 아래의 ORD_NO를 연결하고.
                        GROUP BY CONNECT_BY_ISLEAF   -- 자식 노드가 있으면 1, 없으면 0 
                        HAVING 	CONNECT_BY_ISLEAF = '1'  
                     )
CONNECT BY  PRIOR A."주문번호" = A."원주문번호"   -- "주문번호" 아래의 "원주문번호"  
        AND PRIOR B."주문상품순번 = B."주문상품순번   
       

ㅜ.ㅜ 쿼리는 언제나 어려워......

START WITH  : 어떤 데이터로 계층구조를 지정할 것인가? 
                  가장 처음에 데이터를 거르는 플랜을 타게 되기때문에 해당 컬럼에는 인덱스가 걸려있어야 한다.
CONNECT BY : 각 행들의 연결 관계를 설정 ( 결과에는 LEVEL 이라는 컬럼이 있으며, 이는 계층의 깊이를 의미한다.

반응형
Posted by Edward. K
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • 플래시 게임
  • eclipse plugin
  • rocketdock
  • android
  • EkNote
  • 이미지 편집
  • 색상코드표
  • netbeans
  • flex
  • ERwin
  • 미네르바
  • STS
  • 중독성게임
  • Jboss
  • 사업 이야기
  • 이클립스
  • tomcat
  • Flash Player
  • iBATIS
  • toad
  • 캡쳐툴
  • egov
  • 가상화폐무료
  • 개한민국
  • EditPlus
  • Eclipse
  • Graphic
  • 전자정부프레임워크
  • sqlgate
  • 컴퓨터 관리

글 보관함

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바