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 41712 게시물 읽기
No. 41712
partition by 문의
작성자
량디(fidele)
작성일
2019-04-22 21:46
조회수
2,657

 

 

 

기존 데이타를 조회하여  전표번호를 만들어 주려 합니다.

with t as
 (
   select '20190101' 일자, 'AAA01' 점포, '0101-AAA01' 발생키, '1' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'AAA01' 점포, '0101-AAA01' 발생키, '2' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'AAA01' 점포, '0101-AAA01' 발생키, '3' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'AAA01' 점포, '0101-AAA01' 발생키, '4' 순번 FROM DUAL  
   UNION ALL
   select '20190101' 일자, 'BBB01' 점포, '0101-BBB01' 발생키, '1' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'BBB01' 점포, '0101-BBB01' 발생키, '2' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'BBB01' 점포, '0101-BBB01' 발생키, '3' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'AAA01' 점포, '0102-AAA01' 발생키, '1' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'AAA01' 점포, '0102-AAA01' 발생키, '2' 순번 FROM DUAL
   UNION ALL
   select '20190101' 일자, 'AAA01' 점포, '0102-AAA01' 발생키, '3' 순번 FROM DUAL
   UNION ALL
   select '20190102' 일자, 'AAA01' 점포, '0101-AAA01' 발생키, '1' 순번 FROM DUAL
   UNION ALL
   select '20190102' 일자, 'AAA01' 점포, '0101-AAA01' 발생키, '2' 순번 FROM DUAL
   UNION ALL
   select '20190102' 일자, 'BBB01' 점포, '0101-BBB01' 발생키, '1' 순번 FROM DUAL
   UNION ALL
   select '20190102' 일자, 'BBB01' 점포, '0101-BBB01' 발생키, '2' 순번 FROM DUAL
)  
 SELECT 일자, 점포, 발생키, 순번  FROM T

 

일자, 점포, 발생키별 신규 영수증을 생성해 주려 하는데  일자가 변경되면 점포별로 1번부터 번호를 만들어 주려 하는데

ROW_NUMBER () 를 사용해서 원하는 대로 잘안나오네요...  

원하는 양식은  아래와 같습니다.

 

20190101   AAA01 점포의 4개는  '0001'번으로

20190101  AAA01점포의 3건은 '0002'번으로

20190101   BBB01 점포의 3건은 '0001'번으로

20190102   BBB01 점포의 2건은 '0001'번으로

 

일자, 점포별    1번부터 생성하려 하는데... 도움좀 부탁 드릴께요~

 

 

 

 

 

 

 

         
20190101  AAA01 0101-AAA01    
  20190101  AAA01 0101-AAA01 3 0001
20190101 AAA01 0101-AAA01 4 0001
20190101 BBB01 0101-BBB01 1 0001
20190101 BBB01 0101-BBB01 2  
20190101 BBB01 0101-BBB01 3  
20190101 AAA01 0102-AAA01 1 0002
20190101 AAA01 0102-AAA01 2  
20190101 AAA01 0102-AAA01 3 0002
20190102 AAA01 0101-AAA01 1 0002
20190102 AAA01 0101-AAA01 2 0002
20190102 BBB01 0101-BBB01 1 0001
20190102 BBB01 0101-BBB01 2 0001

 

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

결과가 이해가 안가요. 납득할만한 설명이 필요합니다.

마농(manon94)님이 2019-04-23 00:54에 작성한 댓글입니다.

제가 설명한는게 잘 안되나 봅니다.

여러개의 자료중

 

 

일자 매장 발생키 순번  의 데이타가 있을경우

새로운  발생키를 만들어  신규 테이블에 insert 하는 쿼리를 작성중입니다.

 

즉 기존 자료 일자, 점포, 발생키 별   신규 key 값이 생성되서  순번건수만큼  0001번으로 insert

일자,점포, 발생키가 변경되면 0002번으로 insert 치려하는데  일자, 점포가 변경되면 다시 0001부터

채번을 하려 하는데 row_number() parition by 일자, 점포, 발생키   order by 일자, 점포, 발생키, 순번으로 해보니  잘 안되서 문의드려요....

위와같이 하면     0001     일자,   점포,   발생키   순번1

                           0002      일자,   점포,   발생키   순번 2   

처럼 신규 번호가 순번별로 증가가 되어버려서 해결을 못하고 있어서요...

도움 부탁 드립니다~

 

 

량디(fidele)님이 2019-04-23 13:11에 작성한 댓글입니다.

규칙을 이야기 하고 있는 듯 하지만 전혀 이해가 안가요.
한줄 한줄 따라가면서 왜 번호가 이렇게 나오게 되는지?
앞 뒤 행과의 연관관계를 가지고 한줄 한줄 데이터 예를 가지고 설명해 주세요.

마농(manon94)님이 2019-04-23 19:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41716shell 수행 관련 내용입니다 [1]
탁구공
2019-04-27
2361
41715기간을 연도별로 분할하기 [1]
허광민
2019-04-24
2575
41714다건row에서 하나라도 포함된경우 [1]
어려워
2019-04-23
2371
41712partition by 문의 [3]
량디
2019-04-22
2657
41711갑자기 연결이 안 되네요...
신승익
2019-04-18
2509
41710DECODE나 CASE문 관련 문의 [1]
group
2019-04-18
2558
41709행간계산 질문드립니다. [1]
노트르담
2019-04-17
2618
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다